捕获Exception类而不是Exception子类是不好的做法?

时间:2012-12-06 20:38:32

标签: java

我有一个抛出Exception子类的方法。如果我为Exception的每个子类执行相同的catch功能,那么只是捕获E​​xceptions类或者我应该单独捕获每个异常是不好的做法吗?

5 个答案:

答案 0 :(得分:5)

是的,这是不好的做法,因为它会使catch块捕获不应被捕获的运行时异常。

如果您使用Java 7,则可以使用

catch (SomeException | SomeOtherException | YetAnotherException e) {
    ...
}

答案 1 :(得分:3)

始终建议捕获可能的异常(子类),而不是仅使用一个Exception catch块捕获所有异常。这是一个reference

答案 2 :(得分:0)

如果您可以为代码抛出的任何意外的execptions(例如运行时异常)执行相同的功能,那就没问题了。

否则,我建议捕捉子类。

考虑一下代码的某些部分是否会引发NullPointerException会发生什么?

答案 3 :(得分:0)

是的,通过捕获Exception类来压制异常是不好的做法。例外旨在将问题报告传送给处理程序,这样做可能会隐藏严重错误。

答案 4 :(得分:0)

在某些时候,处理异常 。因此,希望在应用程序中处理(捕获)所有异常。通常,这是一个捕获意外异常的地方,以防止完整的应用程序崩溃,而是提供一些恢复路径,以及向用户发送的一些消息。通常,在您的类中,处理预期的失败并信任您的类和方法为调用者提供的合同。例如,在通过数据库中的ID字符串获取记录的方法中,只捕获SQL异常,因为您的合同可能明确表示不允许使用空ID。将错误的输入异常退回给调用者,否则您最终可能会在错误的级别验证用户输入。