0

我有一个 Java 类,它执行 JNDI 查找并返回查找 ejb 对象。如果查找失败则处理各种异常,失败时返回null。

现在,当调用该 API 并且查找失败时,我们将得到空指针异常。我们可以在调用类中进行空检查,但我需要失败的确切原因..如何捕获基类中抛出的那些异常?

4

2 回答 2

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?
    }
}
于 2013-10-21T07:06:43.357 回答
1

如果您想在调用链中向上传输错误信息,最好的方法是例外。

null如果要添加其他信息,您应该让查找异常向上传播或将其包装在自定义异常中,而不是返回失败的查找。

于 2013-10-21T07:08:34.520 回答