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.UseHsts();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
app.UseExceptionHandlerMiddle();
|
||||||
app.UseIpLimitMiddle();
|
app.UseIpLimitMiddle();
|
||||||
app.UseRequestResponseLogMiddle();
|
app.UseRequestResponseLogMiddle();
|
||||||
app.UseRecordAccessLogsMiddle();
|
app.UseRecordAccessLogsMiddle();
|
||||||
|
|
|
@ -26,7 +26,6 @@ namespace Blog.Core.Extensions.Middlewares
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
await HandleExceptionAsync(context, ex);
|
await HandleExceptionAsync(context, ex);
|
||||||
throw;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,22 +33,26 @@ namespace Blog.Core.Extensions.Middlewares
|
||||||
{
|
{
|
||||||
if (e == null) return;
|
if (e == null) return;
|
||||||
|
|
||||||
Log.Error(e.GetBaseException().ToString());
|
|
||||||
|
|
||||||
await WriteExceptionAsync(context, e).ConfigureAwait(false);
|
await WriteExceptionAsync(context, e).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static async Task WriteExceptionAsync(HttpContext context, Exception e)
|
private static async Task WriteExceptionAsync(HttpContext context, Exception e)
|
||||||
{
|
{
|
||||||
if (e is UnauthorizedAccessException)
|
var message = e.Message;
|
||||||
context.Response.StatusCode = (int) HttpStatusCode.Unauthorized;
|
switch (e)
|
||||||
else if (e is Exception)
|
{
|
||||||
context.Response.StatusCode = (int) HttpStatusCode.BadRequest;
|
case UnauthorizedAccessException:
|
||||||
|
context.Response.StatusCode = (int) HttpStatusCode.Unauthorized;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
context.Response.StatusCode = (int) HttpStatusCode.BadRequest;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
context.Response.ContentType = "application/json";
|
context.Response.ContentType = "application/json";
|
||||||
|
|
||||||
await context.Response
|
await context.Response
|
||||||
.WriteAsync(JsonConvert.SerializeObject(new ApiResponse(StatusCode.CODE500, e.Message).MessageModel))
|
.WriteAsync(JsonConvert.SerializeObject(new ApiResponse(StatusCode.CODE500, message).MessageModel))
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user