diff --git a/DigitalOcean.API/DigitalOcean.API.csproj b/DigitalOcean.API/DigitalOcean.API.csproj index 9bf233f..05aa6c2 100644 --- a/DigitalOcean.API/DigitalOcean.API.csproj +++ b/DigitalOcean.API/DigitalOcean.API.csproj @@ -3,7 +3,7 @@ net6.0 true vevix - 5.2.0 + 5.3.0-rc2 .NET wrapper of the DigitalOcean API 2019 DigitalOcean.API diff --git a/DigitalOcean.API/Extensions/RestSharpExtensions.cs b/DigitalOcean.API/Extensions/RestSharpExtensions.cs index 8864365..9b1dc78 100755 --- a/DigitalOcean.API/Extensions/RestSharpExtensions.cs +++ b/DigitalOcean.API/Extensions/RestSharpExtensions.cs @@ -29,7 +29,8 @@ public static Task> ToByteArrayAsync(this Task private static RestResponse ThrowIfException(this RestResponse response) { if (response.ErrorException != null) { - throw new Exception("There was an an exception thrown during the request.", + throw new Exception("There was an an exception thrown during the request. " + + $"Resource: {response.Request.Resource}. Status: {response.StatusCode}. Body: {response.Content}", response.ErrorException); } @@ -50,8 +51,15 @@ private static Task GetResponseContentAsync(IRestClient theClient, public static T Deserialize(this RestResponse response) { response.Request.OnBeforeDeserialization(response); - var parsedJson = (JObject)JsonConvert.DeserializeObject(response.Content); - return JsonDeserializationHelper.DeserializeWithRootElementName(parsedJson, response.Request.RootElement); + try { + var parsedJson = (JObject)JsonConvert.DeserializeObject(response.Content); + return JsonDeserializationHelper.DeserializeWithRootElementName(parsedJson, response.Request.RootElement); + } + catch (Exception ex) { + throw new Exception($"Failed deserializing response. " + + $"Resource: {response.Request.Resource}. Status: {response.StatusCode}. Body: {response.Content}", + ex); + } } } }