c# - 使用 try-catch 捕获异常

标签 c# exception

我不太明白“适当的异常处理”这个话题。

"Exceptions should only be caught only if you can do something to fix that exceptional situation".

我不明白这个。例如: 如果我没有捕捉到 Convert.toInt() 抛出的 FormatException,即使只是向用户显示异常消息,我的程序也会崩溃。如果我捕获了这个异常并告诉用户输入的格式错误,它就会存活下来。

那么,我是否应该捕获此类异常?

最佳答案

Exceptions should only be caught only if you can do something to fix that exceptional situation

修复 在这里可能不是最好的词。如果可以处理,则应该捕获异常。处理可能意味着:

  • 修复问题或返回一些默认值
  • 重试某事
  • 记录或通知用户(我相信每个异常都应该记录下来,即使你可以修复它)
  • 抛出更多高级异常

但是你不应该捕获异常然后什么都不做:

catch(FormatException ex)
{
}

这只会吞下异常,您永远不会知道是否发生了不好的事情。

关于c# - 使用 try-catch 捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21014211/

相关文章:

c# - 找不到 RavenDB 动态查询

c# - HttpContextAccessor、IPrincipal 和 ServiceCollection

c++ - 在编译时检测异常是否被禁用

java - 如何在 Clojure 中使用自己的 Java 异常类?

c# - 应用程序未正确关闭 MySql 连接

c# - 使用 WebApi ( $inlinecount ) 的 OData 分页

c# - 从桌面应用程序使用时的PasswordVault安全性

将函数返回值中的对象添加到列表时的Java 8 Stream异常处理

java - 在 Java 中编写用户定义异常的最佳实践或好策略

scala - 获取 URL 时最好返回 None 还是抛出异常?