摘要:
类库开发人员使用异常的指导原则避免过多的finally块可以使用using语句来减少finally代码块。避免捕获所有异常如果我们设计的类型是一个类库的一部分,那么它绝对不应该捕获所有的异常(即捕获System.Exception),因为它不可能知道应用程序会如何处理这些异常。如果应用程序代码抛出了一个异常,应用程序的另一部分很可能期望能捕获该异常。这时我们应该让异常按照筛选器的筛选规则沿着调用堆栈向更高一层传递,直至找到能够处理它的应用程序代码。从异常中顺利的恢复我们捕获某个特定的异常时,应该完全理解导致抛出异常的情况,并清楚哪些异常类型继承自我们所捕获的异常。当异常无法修复时,回滚部分完成 阅读全文
摘要:
异常简介 C#只能抛出与CLS兼容的异常,即从System.Exception继承的异常类型。但CLR允许抛出任何类型的对象。C#为我们提供了一种特殊的catch块来捕获与CLS不兼容的异常: catch //这里没有指定异常筛选器{ //这里执行恢复代码 ....} 这样的catch块也可捕获任何与CLS兼容的异常。 finally块中的代码执行的是一些资源清理操作,这些清理操作通常是对应的try块中的行为所需要的。 异常是对程序接口隐含假设的一种违反。 在设计一个类型时,我们应该首先假设类型最常见的使用方式,然后设计其接口使之能够很好地处理这种情况。最后再考虑接口带来的隐含假设,并且当任何 阅读全文