Add ReCApiException class for API error handling
A new `ReCApiException` class was introduced in the `ReC.Client` namespace to represent errors returned by the ReC API. The class includes properties for detailed error information: - `StatusCode`, `ReasonPhrase`, `ResponseBody`, `Method`, and `RequestUri`. A constructor was added to initialize these properties. Conditional compilation directives ensure compatibility between .NET Framework and other .NET targets. The class is marked as `[Serializable]` for non-.NET Framework targets.
This commit is contained in:
88
src/ReC.Client/ReCApiException.cs
Normal file
88
src/ReC.Client/ReCApiException.cs
Normal file
@@ -0,0 +1,88 @@
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
|
||||
namespace ReC.Client
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents an error returned by the ReC API.
|
||||
/// </summary>
|
||||
#if !NETFRAMEWORK
|
||||
[Serializable]
|
||||
#endif
|
||||
public class ReCApiException : Exception
|
||||
{
|
||||
/// <summary>
|
||||
/// The HTTP status code returned by the API.
|
||||
/// </summary>
|
||||
public HttpStatusCode StatusCode { get; }
|
||||
|
||||
/// <summary>
|
||||
/// The HTTP reason phrase returned by the API, if any.
|
||||
/// </summary>
|
||||
#if NETFRAMEWORK
|
||||
public string ReasonPhrase { get; }
|
||||
#else
|
||||
public string? ReasonPhrase { get; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The raw response body returned by the API, if any.
|
||||
/// </summary>
|
||||
#if NETFRAMEWORK
|
||||
public string ResponseBody { get; }
|
||||
#else
|
||||
public string? ResponseBody { get; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The HTTP method used for the failed request.
|
||||
/// </summary>
|
||||
#if NETFRAMEWORK
|
||||
public string Method { get; }
|
||||
#else
|
||||
public string? Method { get; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// The request URI that was called.
|
||||
/// </summary>
|
||||
#if NETFRAMEWORK
|
||||
public Uri RequestUri { get; }
|
||||
#else
|
||||
public Uri? RequestUri { get; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ReCApiException"/> class.
|
||||
/// </summary>
|
||||
/// <param name="message">A summary message describing the error.</param>
|
||||
/// <param name="statusCode">The HTTP status code returned by the API.</param>
|
||||
/// <param name="reasonPhrase">The HTTP reason phrase returned by the API.</param>
|
||||
/// <param name="responseBody">The raw response body returned by the API.</param>
|
||||
/// <param name="method">The HTTP method used for the request.</param>
|
||||
/// <param name="requestUri">The request URI that was called.</param>
|
||||
public ReCApiException(
|
||||
string message,
|
||||
HttpStatusCode statusCode,
|
||||
#if NETFRAMEWORK
|
||||
string reasonPhrase,
|
||||
string responseBody,
|
||||
string method,
|
||||
Uri requestUri
|
||||
#else
|
||||
string? reasonPhrase,
|
||||
string? responseBody,
|
||||
string? method,
|
||||
Uri? requestUri
|
||||
#endif
|
||||
) : base(message)
|
||||
{
|
||||
StatusCode = statusCode;
|
||||
ReasonPhrase = reasonPhrase;
|
||||
ResponseBody = responseBody;
|
||||
Method = method;
|
||||
RequestUri = requestUri;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user