2010-12-10 63 views

回答

0

这一切都取决于要求是什么。

在某些情况下,您确实希望唤起呼叫者的异常,因为呼叫者可能会更好地处理该问题。 发送电子邮件可能不总是系统的关键,但它可能是当它需要告诉你有人登录到你的银行帐户。

另一方面,您不希望冒泡应该由被调用的方法处理的异常。 如果您正在编写的内容是通过FTP下载文件,那么如果您打算稍后再试一次,则不希望每次断开连接都会打扰调用方。

这又取决于当时的情况,而不是经验法则。

1

它确实取决于程序能够在哪里处理错误,以有用的方式报告它,并继续一些有用的处理。

在我编写的UI代码中,例如在处理事件时,我可能调用私有方法,然后调用遇到错误的一些实用程序方法。在实用方法中处理它没有多大意义,因为它可能不知道正在处理的事件以及向用户报告错误的所有方法。事件处理的第一级可能处于更好的状态,要么停止处理,要么进行必要的调整。另一方面,如果实用方法可以合理地处理所有将被使用的情况下的错误(也许有一些重试逻辑或计划B逻辑),那么它可能在这里。

但是,对于我所完成的大部分UI代码,它通常会传递到更高的级别,因为它可以更好地处理特定情况。