.net core .NET核心5。错误处理中间件vs UseExceptionHandler

.net core .NET核心5。错误处理中间件vs UseExceptionHandler,.net-core,.net-5,.net Core,.net 5,我见过一些使用错误处理中间件的代码示例,如 public async Task Invoke(HttpContext context /* other dependencies */) { try { await next(context); } catch (Exception ex) { await HandleExceptionAsync(cont

我见过一些使用错误处理中间件的代码示例,如

    public async Task Invoke(HttpContext context /* other dependencies */)
    {
        try
        {
            await next(context);
        }
        catch (Exception ex)
        {
            await HandleExceptionAsync(context, ex);
        }
    }
我还看到了使用

app.UseExceptionHandler(HandleException());
他们都一样吗?有偏好吗

谢谢。

后一个选项是一个“预制”中间件,供您使用,它附带了一些您可以修改的选项

如果这些选项对您来说足够了,您可以直接使用它,否则您将需要编写一个自定义中间件

实际上,我更喜欢自定义中间件,因为异常处理变得非常明确,更容易理解,并且完全驻留在它自己的类中。

也使“单元”测试更容易。