Java,抛出异常而不是使用try / catch?

时间:2012-02-29 22:04:18

标签: java

使用try / catch语句的规则是什么,而不是仅抛出异常并在方法声明中添加“throws Exception”?

try / catch是否应该用于客户端代码,并且“throws Exception”是否在API方法中?

3 个答案:

答案 0 :(得分:5)

检查例外的一般逻辑是 - 如果您可以在特殊情况下采取措施,请执行此操作。否则 - 重新抛出。

请注意,{@ 1}}应该避免,但我认为你的意思是throws Exception - 尽可能具体。

检查异常的真正好处是有限的,但它们被过度使用。这导致(在许多情况下是合理的)将它们简单地包装在未经检查的异常中:

throw SomeException

我已就此事分享了我的想法here

答案 1 :(得分:0)

如果您希望使用其他方法来处理它,则抛出异常。如果您期望异常并且想要在那里处理它,请尝试/ catch。

答案 2 :(得分:0)

如果你知道如何处理异常并且处理它是有意义的,那么处理它,否则用throws传递它。

  • 除非真的有意义,否则不要捕捉异常并忽略它。
  • 不要捕获异常并强制退出 - 如果错误是“致命”信号FatalError
  • 在捕获异常之前请三思而后,只需设置返回代码 - 这样做会丢失很多有关特定错误的有用信息。

当然,请记住,如果要扩展类并重写现有方法,则必须匹配原始方法的方法原型。这可能需要您处理您想要通过的异常。