实用方法和例外

时间:2011-08-24 04:18:17

标签: java exception-handling

将实用程序方法中的异常抛出给调用者而不是使用try |来捕获它们总是好的抓住积木?我知道它有争议,但只是想从不同的观点得到输入!

2 个答案:

答案 0 :(得分:1)

我不确定实用方法的含义,但规则(或更确切地说,指南)几乎适用于所有情况。

一般经验法则(我几乎从Effective Java 2nd edition引用它):

  1. 仅在特殊情况下使用例外
  2. 抛出适用于抽象级别的异常
  3. 每个更高级别应该从较低级别捕获异常(并且可能包围和重新抛出)并抛出可以在更高级别理解的异常。这意味着(除其他外) - 你抛出异常的层应该确保它的抛出异常可以在更高的层次上被解释并处理。


    我喜欢这样思考 - 如果你从方法中抛出异常,你应该确定:

    1. 您不知道或不想在故障方法中处理它(通过一些故障转移机制)
    2. 更高级别知道如何处理它。
    3. 客户端(如果它一直传播到客户端)将从中获取一些有用的信息
    4. 还有更多,但又一次 - 我链接的书应该是一个很好的阅读地点(一般也是Java)。

答案 1 :(得分:0)

如果发生某些事情,调用者应该知道它的逻辑以抛出异常。