【发布时间】:2010-09-19 18:33:11
【问题描述】:
1)
1 - 仅处理您认为的异常 实际上可以做点什么,
2 - 你对绝大多数异常无能为力
a) 我假设 “By not handling an exception” 的文字建议我们应该让异常冒泡到堆栈中,运行时将在哪里中止我们的应用程序?!
b) 但是为什么让运行时中止异常而不是捕获异常、记录它然后通知用户失败?两者之间的唯一区别是在后一种情况下应用程序不会中止
例如,如果数据库出现故障,为什么整个程序会崩溃(由于没有处理异常),如果我们可以捕获异常,记录并通知用户失败,这样我们就可以保持程序正常运行并运行
2) 如果您知道某些代码块可能引发的异常无法处理,您应该将此代码包含在 try-finally 块中还是将其留在任何 try-finally 块之外更好?
谢谢
【问题讨论】:
-
我不知道引号的完整上下文。但我认为正确的解释是:(A)如果你是一个class设计师,那么就遵循这些规则。基本上,不要隐藏意外的异常。 (B) 但如果您是应用程序 开发人员,那么这些规则不适用于您;如果你能帮助它,不要让你的程序崩溃。
标签: c# exception-handling