我知道在某些版本中,Hibernate异常被更改为未选中.是什么原因?这是一个哲学问题还是实际问题?
如果我有一个抛出未经检查的异常的方法,例如:
void doSomething(int i) {
if (i < 0) throw new IllegalArgumentException("Too small");
// ...
}
Run Code Online (Sandbox Code Playgroud)
明确声明该方法抛出异常是否有任何好处,即
void doSomething(int i) throws IllegalArgumentException {
if (i < 0) throw new IllegalArgumentException("Too small");
// ...
}
Run Code Online (Sandbox Code Playgroud)
与(或除了)描述javadoc中的行为相反:
/**
* This method does something useful.
* @param i some input value
* @throws IllegalArgumentException if {@code i < 0}
*/
void doSomething(int i) {
if (i < 0) throw new IllegalArgumentException("Too small");
// ...
}
Run Code Online (Sandbox Code Playgroud)
我声称它的原因是没有用的throws是:
throws没有提供关于抛出异常的情况的信息,只提供可能抛出的异常;