我有一个抛出Exception子类的方法。如果我为Exception的每个子类执行相同的catch功能,那么只是捕获Exceptions类或者我应该单独捕获每个异常是不好的做法吗?
答案 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。将错误的输入异常退回给调用者,否则您最终可能会在错误的级别验证用户输入。