.net core webapi教程-IExceptionFilter、IAsyncExceptionFilter捕捉不到的异常处理方法
深山老妖浏览:6772023-12-04 20:38:21本文累计收益:0我也要赚钱

.net core webapi教程-IExceptionFilter、IAsyncExceptionFilter使用详解 一文讲解了IExceptionFilter、IAsyncExceptionFilter可以捕捉到哪些异常,哪些异常捕捉不到,本文介绍IExceptionFilter、IAsyncExceptionFilter捕捉不到的异常如何处理。

解决方法,需要配合使用中间件就行解决,在Program.cs文件中增加如下代码即可。

#region 中间件处理异常
app.UseExceptionHandler(builder =>
{
    builder.Run(async context =>
    {
        context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
        context.Response.ContentType = "application/json";

        var exception = context.Features.Get<IExceptionHandlerFeature>();
        if (exception != null)
        {
            var error = new ErrorMessage()
            {
                Stacktrace = exception.Error.StackTrace,
                Message = exception.Error.Message
            };
            var errObj = JsonConvert.SerializeObject(error);

            await context.Response.WriteAsync(errObj).ConfigureAwait(false);
        }
    });
});
#endregion

ErrorMessage类代码如下:

namespace NetCoreStudy.WebApi.Utility
{
    public class ErrorMessage
    {
        public string Message { get; set; }
        public string Stacktrace { get; set; }
    }
}

 

评论列表
发表评论
+ 关注