diff --git a/src/NzbDrone.Core/Exceptions/NzbDroneClientException.cs b/src/NzbDrone.Core/Exceptions/NzbDroneClientException.cs index ed44e447c..47183b9f3 100644 --- a/src/NzbDrone.Core/Exceptions/NzbDroneClientException.cs +++ b/src/NzbDrone.Core/Exceptions/NzbDroneClientException.cs @@ -1,4 +1,5 @@ -using System.Net; +using System; +using System.Net; using NzbDrone.Common.Exceptions; namespace NzbDrone.Core.Exceptions @@ -13,6 +14,12 @@ namespace NzbDrone.Core.Exceptions StatusCode = statusCode; } + public NzbDroneClientException(HttpStatusCode statusCode, string message, Exception innerException, params object[] args) + : base(message, innerException, args) + { + StatusCode = statusCode; + } + public NzbDroneClientException(HttpStatusCode statusCode, string message) : base(message) { diff --git a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookException.cs b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookException.cs index aabfe757f..cc2d4592d 100644 --- a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookException.cs +++ b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookException.cs @@ -1,4 +1,5 @@ -using System.Net; +using System; +using System.Net; using NzbDrone.Core.Exceptions; namespace NzbDrone.Core.MetadataSource.SkyHook @@ -14,5 +15,10 @@ namespace NzbDrone.Core.MetadataSource.SkyHook : base(HttpStatusCode.ServiceUnavailable, message, args) { } + + public SkyHookException(string message, Exception innerException, params object[] args) + : base(HttpStatusCode.ServiceUnavailable, message, innerException, args) + { + } } } diff --git a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs index bd4694156..b1dcc1e6c 100644 --- a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs +++ b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs @@ -227,14 +227,20 @@ namespace NzbDrone.Core.MetadataSource.SkyHook return httpResponse.Resource.SelectList(MapSearchResult); } - catch (HttpException) + catch (HttpException ex) { - throw new SkyHookException("Search for '{0}' failed. Unable to communicate with LidarrAPI.", title); + _logger.Warn(ex); + throw new SkyHookException("Search for '{0}' failed. Unable to communicate with LidarrAPI.", ex, title); + } + catch (WebException ex) + { + _logger.Warn(ex); + throw new SkyHookException("Search for '{0}' failed. Unable to communicate with SkyHook.", ex, title, ex.Message); } catch (Exception ex) { _logger.Warn(ex, ex.Message); - throw new SkyHookException("Search for '{0}' failed. Invalid response received from LidarrAPI.", title); + throw new SkyHookException("Search for '{0}' failed. Invalid response received from LidarrAPI.", ex, title); } }