错误处理中间件 VS 异常过滤器
现在,我们已经介绍了两种错误处理的方法------错误处理中间件和异常过滤器。现在来比较一下它们的异同,以及我们何时应该选择哪种处理方式。
错误处理中间件:
可以捕获后续中间件的所有未处理异常
拥有RequestDelegate,操作更加灵活
粒度较粗,仅可针对全局进行配置
错误处理中间件适合用于处理全局异常。
异常过滤器:
仅可捕获Controller创建时(也就是构造函数中抛出的异常)、模型绑定、Action Filter和Action中抛出的未处理异常,其他地方抛出的异常捕获不到
粒度更小,可以灵活针对Controller或Action配置不同的异常过滤器
异常过滤器非常适合用于捕获并处理Action中的异常。
在我们的应用中,可以同时使用错误处理中间件和异常过滤器,只有充分发挥它们各自的优势,才能处理好程序中的错误