三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

做网站多少钱 注意什么厦门建设工程招标中心的网站

做网站多少钱 注意什么厦门建设工程招标中心的网站 做网站多少钱 注意什么,厦门建设工程招标中心的网站,腾讯云域名续费,北美跨境电商平台有哪些一、自定义using WebApi.Result;namespace WebApi.Exceptions {public class ApiException : Exception{public ResultCodeEnum ErrorCodeEnum { get; }public ApiException(ResultCodeEnum resultCodeEnum) : base((r… 一、自定义using WebApi.Result;namespace WebApi.Exceptions {public class ApiException : Exception{public ResultCodeEnum ErrorCodeEnum { get; }public ApiException(ResultCodeEnum resultCodeEnum) : base((resultCodeEnum.Message)){ErrorCodeEnum = resultCodeEnum;}} }二、中间件using System.Net; using System.Text.Json; using WebApi.Exceptions; using WebApi.Result;namespace WebApi.Middlewares {public class GlobalExceptionMiddleware{private readonly RequestDelegate _next;private readonly ILoggerGlobalExceptionMiddleware _logger;public GlobalExceptionMiddleware(RequestDelegate next, ILoggerGlobalExceptionMiddleware logger){_next = next;_logger = logger;}public async Task InvokeAsync(HttpContext context){try{await _next(context);}catch (Exception ex){await HandleExceptionAsync(context, ex);}}private async Task HandleExceptionAsync(HttpContext context, Exception exception){context.Response.ContentType = "application/json";context.Response.StatusCode = (int)HttpStatusCode.OK; ApiResult result;// 判断 自己的if (exception is ApiException apiEx){result = ApiResult.Fail(apiEx.ErrorCodeEnum);_logger.LogWarning($"异常拦截:{apiEx.ErrorCodeEnum.Message}");}else{// 其它的result = ApiResult.Fail(ResultCodeEnum.ServiceError.Code, $"系统发生未知错误: {exception.Message}");_logger.LogError(exception, "系统崩溃拦截");}// json字符串var json = JsonSerializer.Serialize(result, new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase });await context.Response.WriteAsync(json);}} }三、添配置(Program.cs)var app = builder.Build();#region 中间件 app.UseMiddlewareGlobalExceptionMiddleware(); #endregion
← 返回列表