全局异常处理VS Try随处可见

时间:2019-10-13 06:07:11

标签: c# asp.net exception .net-core try-catch

最近,我在代码中使用了全局异常处理,因此我知道可以处理所有异常。以前,我在每个控制器上都使用try-catch,现在由于全局异常而从控制器中删除了所有try-catch,因为它可以处理所有类型的异常。

所以我怀疑,删除以前在控制器中用于全局异常处理的所有异常处理是一种好习惯还是应该在控制器上同时使用Global和try-catch。

如果需要try-catch,是否有必要在控制器级别处理所有异常。

我当前的工作堆栈是-.Net Core。

1 个答案:

答案 0 :(得分:0)

这个问题过于笼统,无法给出完整的答案,但让我对这个问题发表自己的看法。

try-catch-finally块不用于处理未处理的异常。当然,您从未想到的情况将无法解决,您不应让它们保持沉默,而应让它们表达自己,让您思考它们。尽管处理的异常不是程序员所掌握的,但他/她已经考虑过了。例如,用户输入是字符串而不是数字。

如果是您认为的情况,但请始终控制if。例如,如果某些内容可以为null。尝试捕获确实非常昂贵,并且其中不应包含任何逻辑。

另一方面,使用全局异常处理程序是完全相反的。并非要包装所有思想案例并向用户显示单个响应。您应该记录未知的异常以再次出现,并想一想它们为什么发生,同时对用户表示抱歉。 :)