From 56554f1f3a7a82b00fc398e984ae979acd2eff91 Mon Sep 17 00:00:00 2001 From: Martin Lee Date: Wed, 26 Feb 2020 12:27:06 +0000 Subject: [PATCH] Catch json deserialisation errors --- SuccessfulCodeTools/Extensions/ObjectExtensions.cs | 4 ++-- SuccessfulCodeTools/Extensions/StringExtensions.cs | 11 ++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/SuccessfulCodeTools/Extensions/ObjectExtensions.cs b/SuccessfulCodeTools/Extensions/ObjectExtensions.cs index 1f4f89e..1b5a3e0 100644 --- a/SuccessfulCodeTools/Extensions/ObjectExtensions.cs +++ b/SuccessfulCodeTools/Extensions/ObjectExtensions.cs @@ -7,9 +7,9 @@ namespace SuccessfulCodeTools.Extensions { public static class ObjectExtensions { - public static Lazy _settings = new Lazy(GetSettings); + public static Lazy _settings = new Lazy(JsonSettings); - private static JsonSerializerSettings GetSettings() + private static JsonSerializerSettings JsonSettings() { var settings = new JsonSerializerSettings() { diff --git a/SuccessfulCodeTools/Extensions/StringExtensions.cs b/SuccessfulCodeTools/Extensions/StringExtensions.cs index 44ec805..63328db 100644 --- a/SuccessfulCodeTools/Extensions/StringExtensions.cs +++ b/SuccessfulCodeTools/Extensions/StringExtensions.cs @@ -8,7 +8,16 @@ namespace SuccessfulCodeTools { public static T DeserializeJson(this string value) { - return JsonConvert.DeserializeObject(value); + try + { + return JsonConvert.DeserializeObject(value); + } + catch (Exception ex) + { + ex = new ArgumentException("Not valid json", nameof(value), ex); + ex.Data.Add("argument value", value); + throw ex; + } } public static T ToEnum(this string value)