Net Core教程

Ultimate ASP.NET CORE 6.0 Web API --- 读书笔记(5)

本文主要是介绍Ultimate ASP.NET CORE 6.0 Web API --- 读书笔记(5),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Global Error Handling

本文内容来自书籍: Marinko Spasojevic - Ultimate ASP.NET Core Web API - From Zero To Six-Figure Backend Developer (2nd edition)

错误处理,一般是使用try-catchblocks,然后是finally处理资源释放

但是会把这些处理逻辑零散地分布在代码中,如果将错误处理集中在一块区域,那么业务逻辑中的代码会变得更干净

5.1 Handling Errors Globally with the Built-In Middleware

UseExceptionHandler中间件是用来处理错误的

  1. 首先在Entities中创建ErrorModel/ErrorDetails,使用这个实体来包含错误的信息
  2. 然后在主项目中,注册中间件Extensions/ExceptionMiddlewareExtensions
public static class ExceptionMiddlewareExtensions
{
    public static void ConfigureExceptionHandler(this WebApplication app, ILoggerManager logger)
    {
        app.UseExceptionHandler(appError =>
        {
            appError.Run(async context =>
            {
                context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                context.Response.ContentType = "application/json";
                var contextFeature = context.Features.Get<IExceptionHandlerFeature>();
                if (contextFeature != null)
                {
                    logger.LogError($"Something went wrong: {contextFeature.Error}");
                    await context.Response.WriteAsync(new ErrorDetails()
                    {
                        StatusCode = context.Response.StatusCode,
                        Message = "Internal Server Error.",
                    }.ToString());
                }
            });
        });
    }
}
这篇关于Ultimate ASP.NET CORE 6.0 Web API --- 读书笔记(5)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!