天天看点

中间件-异常处理

带着问题去思考!大家好!

处理异常的方式有

  • 1:异常处理页
  • 2:异常处理匿名委托方法
  • 3:IExceptionFilter
  • 4:ExceptionFilterAttribut

 这里我们可以 新创建一个Startup,实现我们定义的IStartup接口,接口的定义主要是为了实现其他的服务注册和配置应用程序请求管道(IApplicationBuilder)。

/// <summary>

/// 配置应用程序启动时异常处理中间件

/// </summary>

public class ErrorHandlerStartup : IStartup

{

/// <summary>

/// Add and configure any of the middleware

/// </summary>

/// <param name="services">Collection of service descriptors</param>

/// <param name="configuration">Configuration root of the application</param>

public void ConfigureServices(IServiceCollection services, IConfiguration configuration)

{

}

/// Configure the using of added middleware

/// <param name="application">Builder for configuring an application's request pipeline</param>

public void Configure(IApplicationBuilder application)

{

//异常处理

application.UseExceptionHandler();

//400处理

application.UseBadRequestResult();

//404处理

application.UsePageNotFound();

}

这里的三个方法分别实现了以上处理方式

第一个方法我们实现了IApplicationBuilder的UseExceptionHandler

1:这里具体我们通过Run来进行启动

2:通过HttpContext的IFeatureCollection(表示HTTP特性的集合) 来获取Error

View Code

第二个方法IApplicationBuilder的UseStatusCodePages(添加带有给定选项的StatusCodePages中间件,用于检查状态代码在400到599之间且没有正文的响应。)来实现

第三种我们通过IApplicationBuilder的UseStatusCodePages