我们使用JSF2 ExceptionHandler捕获异常。所有运行时异常都通过精确的堆栈跟踪捕获到异常处理程序中。

但是对象以FacesException的形式出现。有什么方法可以从NullPointerException对象获取异常的根本原因,例如FacesException吗?

最佳答案

是的,只需使用从getCause()继承的Throwable方法(因此可用于每个异常和错误):

Throwable cause = facesException.getCause();
// ...


如果您要专门检查NullPointerException(为什么超出我的范围,因为那通常是开发人员错误,而不是用户错误,除了那),那么您可以执行instanceof检查:

if (cause instanceof NullPointerException) {
    // The cause is a NullPointerException.
}

10-01 00:06