1 回答

TA贡献1875条经验 获得超5个赞
Java 有两种不同的例外:选中和未选中。
已检查的例外:
任何不从 或 扩展的内容。
java.lang.Throwable
java.lang.Error
java.lang.RuntimeException
必须在可以抛出它们的位置显式处理。如果不这样做,将导致编译错误。如果已检验异常被捕获在 try-catch 块中,或者如果包含方法被声明给已检验的异常,则会处理该异常。
throws
未选中的例外:
或 的任何实例。
java.lang.Error
java.lang.RuntimeException
可以捕获和处理,但不需要。也可以在方法签名的子句中使用,但这样做通常被认为是不好的做法。如果有人想记录一个未经检查的异常被一个方法抛出的可能性,他们应该在Javadoc中通过.
throws
@throws
基于编译错误,我只能假设是一个已检查的异常,因此必须进行处理。有关更多信息,请参阅 Java:选中与未选中异常说明。EntityNotFoundException
我同意空的捕获块很臭。至少,您应该记录异常。如果您最终对每个可能的异常执行相同的操作,则可以像这样重写 try-catch:
try {
/* Do stuff... */
} catch (EntityNotFoundException | IntantiationException | IllegalAccessException ex) {
// log ex...
}
我相信,上述语法需要Java 7+。
添加回答
举报