我想在遇到异常时将此内容写入日志:

log(e.getClass().getName());
log(e.getMessage());
log(e.getCause().getClass().getName());
log(e.getCause().getMessage());


呼叫e.getCause时是否需要检查null?还是总会填充一个值?

最佳答案

getCause()可以返回null,因此必须检查。所以-您必须检查null。来自the documentation


  返回值:
      此throwable的原因;如果原因不存在或未知,则为null。


您可以使用commons-lang ExceptionUtils.getMessage(e.getCause())ExceptionUtils.getRootCauseMessage(e)

07-28 13:23