ASP.NET Core MVC 中设置全局异常处理方式

在asp.net core mvc中,如果有未处理的异常发生后,会返回http500错误,对于最终用户来说,显然不是特别友好。那如何对于这些未处理的异常显示统一的错误提示页面呢?

在asp.net core中提供了异常处理中间件,具体方法如下:

IApplicationBuilder.UseExceptionHandler(string errorHandlingPath);

通过上面的方法,就在http请求处理管道中增加了异常处理中间件,这个中间件会捕获所有未处理的异常,并引导到配置的错误处理地址(mvc中可以定义专门用于处理异常的控制器)。

实例:

Startup.cs

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)

{

......

app.UseExceptionHandler("/Error/Show");

......

}

在使用的时候,唯一需要注意的是这个中间件注册的位置,一般是注册到整个请求处理管道的最顶端。