我有一个Java类,它执行JNDI查找并返回查找ejb对象。如果查找失败,则处理各种异常,当失败时,它将返回null。
现在,当调用该API并且查找失败时,我们将获得nullpointer异常。我们可以在调用类时进行空检查,但我需要确切的失败原因。如何捕获基类中引发的异常?
答案 0 :(得分:1)
不要捕获异常,或者如果需要捕获它们来完成某些特定的工作,请在完成后重新抛出它们,这样调用者就可以看到有异常并自行处理它。
像:
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?
}
}
答案 1 :(得分:1)
如果您想在调用链中向上传输错误信息,最好的方法是例外。
如果要添加其他信息,您应该让查找异常传播或将其包装在自定义异常中,而不是在失败的查找中返回null
。