在我的 MVC6 应用程序中,我创建了一个中间件来使用 Invoke 任务处理全局未处理的异常,如下所示:
try
{
await _next.Invoke(context);
}
catch (System.Exception e)
{
... Log the exception here...
}
我面临的问题是,如果我在添加 UseDeveloperExceptionPage/UseExceptionHandle 之前将其添加到配置部分中,则中间件中的 catch block 不会被命中。 当我在 UseDeveloperExceptionPage/UseExceptionHandle 之后添加此内容时,错误页面或模块未得到处理。
我怎样才能不干扰错误页面/模块,但仍然捕获管道中的错误并记录它?
提前致谢。
最佳答案
这是因为异常页面需要有一个Exception
对象才能使用。您的代码捕获了异常,然后将其抑制。尝试像这样重新抛出异常:
try
{
await _next.Invoke(context);
}
catch (System.Exception e)
{
//Log the exception here...
throw;
}
关于asp.net - MVC6 - 处理未处理的异常,但仍然有错误页面重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36113690/