diff --git a/src/NzbDrone.Core/Exceptions/NzbDroneClientException.cs b/src/NzbDrone.Core/Exceptions/NzbDroneClientException.cs index ed44e447c..5c162ad4f 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..8fcc9c5bf 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 b50c07800..a4377ba3b 100644 --- a/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs +++ b/src/NzbDrone.Core/MetadataSource/SkyHook/SkyHookProxy.cs @@ -421,14 +421,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 TMDb.", title); + _logger.Warn(ex); + throw new SkyHookException("Search for '{0}' failed. Unable to communicate with TMDb.", ex, title); + } + catch (WebException ex) + { + _logger.Warn(ex); + throw new SkyHookException("Search for '{0}' failed. Unable to communicate with TMDb.", ex, title, ex.Message); } catch (Exception ex) { - _logger.Warn(ex, ex.Message); - throw new SkyHookException("Search for '{0}' failed. Invalid response received from TMDb.", title); + _logger.Warn(ex); + throw new SkyHookException("Search for '{0}' failed. Invalid response received from TMDb.", ex, title); } }