From 45116fe5afbd480d85c1bec233ac67293b6a04fd Mon Sep 17 00:00:00 2001 From: LemonNoCry <773596523@qq.com> Date: Tue, 13 Jun 2023 17:29:41 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20=E5=90=AF=E7=94=A8=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E5=A4=84=E7=90=86=E4=B8=AD=E9=97=B4=E4=BB=B6,?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E6=8B=A6=E6=88=AA=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Blog.Core.Api/Program.cs | 1 + .../Middlewares/ExceptionHandlerMiddleware.cs | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Blog.Core.Api/Program.cs b/Blog.Core.Api/Program.cs index 67d4524..eee48a6 100644 --- a/Blog.Core.Api/Program.cs +++ b/Blog.Core.Api/Program.cs @@ -144,6 +144,7 @@ else //app.UseHsts(); } +app.UseExceptionHandlerMiddle(); app.UseIpLimitMiddle(); app.UseRequestResponseLogMiddle(); app.UseRecordAccessLogsMiddle(); diff --git a/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs b/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs index 7a7e1fb..0316888 100644 --- a/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs +++ b/Blog.Core.Extensions/Middlewares/ExceptionHandlerMiddleware.cs @@ -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); } }