mirror of
https://github.com/anjoy8/Blog.Core.git
synced 2024-09-20 23:48:27 +08:00
🎨 启用异常处理中间件,统一拦截异常
This commit is contained in:
parent
a338c56e7a
commit
45116fe5af
|
@ -144,6 +144,7 @@ else
|
|||
//app.UseHsts();
|
||||
}
|
||||
|
||||
app.UseExceptionHandlerMiddle();
|
||||
app.UseIpLimitMiddle();
|
||||
app.UseRequestResponseLogMiddle();
|
||||
app.UseRecordAccessLogsMiddle();
|
||||
|
|
|
@ -26,7 +26,6 @@ namespace Blog.Core.Extensions.Middlewares
|
|||
catch (Exception ex)
|
||||
{
|
||||
await HandleExceptionAsync(context, ex);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -34,22 +33,26 @@ namespace Blog.Core.Extensions.Middlewares
|
|||
{
|
||||
if (e == null) return;
|
||||
|
||||
Log.Error(e.GetBaseException().ToString());
|
||||
|
||||
await WriteExceptionAsync(context, e).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
private static async Task WriteExceptionAsync(HttpContext context, Exception e)
|
||||
{
|
||||
if (e is UnauthorizedAccessException)
|
||||
context.Response.StatusCode = (int) HttpStatusCode.Unauthorized;
|
||||
else if (e is Exception)
|
||||
context.Response.StatusCode = (int) HttpStatusCode.BadRequest;
|
||||
var message = e.Message;
|
||||
switch (e)
|
||||
{
|
||||
case UnauthorizedAccessException:
|
||||
context.Response.StatusCode = (int) HttpStatusCode.Unauthorized;
|
||||
break;
|
||||
default:
|
||||
context.Response.StatusCode = (int) HttpStatusCode.BadRequest;
|
||||
break;
|
||||
}
|
||||
|
||||
context.Response.ContentType = "application/json";
|
||||
|
||||
await context.Response
|
||||
.WriteAsync(JsonConvert.SerializeObject(new ApiResponse(StatusCode.CODE500, e.Message).MessageModel))
|
||||
.WriteAsync(JsonConvert.SerializeObject(new ApiResponse(StatusCode.CODE500, message).MessageModel))
|
||||
.ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user