diff --git a/DigitalData.Core.Exceptions.Middleware/HttpExceptionHandler.cs b/DigitalData.Core.Exceptions.Middleware/HttpExceptionHandler.cs index 817d04e..21a18c3 100644 --- a/DigitalData.Core.Exceptions.Middleware/HttpExceptionHandler.cs +++ b/DigitalData.Core.Exceptions.Middleware/HttpExceptionHandler.cs @@ -7,6 +7,7 @@ namespace DigitalData.Core.Exceptions.Middleware; public record HttpExceptionHandler(Type ExceptionType, Func HandleExceptionAsync) { + #region Alternative generator methods public static HttpExceptionHandler Create(Func HandleExceptionAsync) where TException : Exception => new HttpExceptionHandler(typeof(TException), HandleExceptionAsync); @@ -20,10 +21,22 @@ public record HttpExceptionHandler(Type ExceptionType, Func DefaultMessageFactory = ex => ex.Message; public static readonly HttpExceptionHandler DefaultBadRequest = Create(HttpStatusCode.BadRequest, DefaultMessageFactory); public static readonly HttpExceptionHandler DefaultNotFound = Create(HttpStatusCode.NotFound, DefaultMessageFactory); + + public static readonly HttpExceptionHandler Default = Create( + async (context, ex, logger) => + { + context.Response.ContentType = "application/json"; + context.Response.StatusCode = (int)HttpStatusCode.InternalServerError; + var message = "An unexpected error occurred."; + await context.Response.WriteAsync(JsonSerializer.Serialize(new { message })); + }); + #endregion }; \ No newline at end of file