我有一个 Java 类,它执行 JNDI 查找并返回查找 ejb 对象。如果查找失败则处理各种异常,失败时返回null。
现在,当调用该 API 并且查找失败时,我们将得到空指针异常。我们可以在调用类中进行空检查,但我需要失败的确切原因..如何捕获基类中抛出的那些异常?
我有一个 Java 类,它执行 JNDI 查找并返回查找 ejb 对象。如果查找失败则处理各种异常,失败时返回null。
现在,当调用该 API 并且查找失败时,我们将得到空指针异常。我们可以在调用类中进行空检查,但我需要失败的确切原因..如何捕获基类中抛出的那些异常?
不要捕获异常,或者如果您需要捕获它们以执行某些特定工作,请在完成后重新抛出它们,以便调用者可以看到存在异常并自己处理它。
喜欢:
method1() {
try {
// SomeException is thrown here
} catch (SomeException e) {
// do some work because of the exception
throw e // re-throw or throw new MyException(e)
}
}
method2() {
try {
method1();
} catch (SomeException e) {
// something went bad!
// do some specific work?
}
}
如果您想在调用链中向上传输错误信息,最好的方法是例外。
null
如果要添加其他信息,您应该让查找异常向上传播或将其包装在自定义异常中,而不是返回失败的查找。