首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >全局异常处理与Try catch everywhere

全局异常处理与Try catch everywhere
EN

Stack Overflow用户
提问于 2019-10-13 14:07:12
回答 1查看 1.6K关注 0票数 2

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

所以我怀疑,删除我之前在控制器中用于全局异常处理的所有异常处理,或者应该同时使用全局和控制器上的try-catch,是不是一个好的做法。

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

我目前的工作堆栈是- .Net核心。

EN

回答 1

Stack Overflow用户

发布于 2019-10-13 16:42:26

这个问题太宽泛了,不能给出一个完整的答案,但让我就这件事发表我的看法。

try-catch-finally块不用于处理未处理的异常。当然,你从未想过的情况将不会得到处理,你不应该让它们保持沉默,但你应该让它们表达出来,让你去思考它们。然而,处理的异常是程序员不能处理的情况,但他/她已经考虑过了。例如,用户输入的是字符串而不是数字。

如果这是你所认为的情况,但它在你的控制之中,那么一定要检查一下if。例如,如果某个东西可以是空的。Try-catch的开销非常大,不应该在其中处理任何逻辑。

另一方面,使用全局异常处理程序恰恰是相反的。它并不是包装所有思考案例并向用户显示单个响应。你应该记录未知的异常,并思考为什么会发生这些异常,同时向用户表示抱歉。:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58361013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档