我想在捕获异常时将这些内容写入日志:
log(e.getClass().getName());
log(e.getMessage());
log(e.getCause().getClass().getName());
log(e.getCause().getMessage());
拨打e.getCause
时是否需要检查空?或者它总是会填充一个值吗?
答案 0 :(得分:3)
getCause()
可以返回null,因此您必须检查。所以 - 你必须检查null
。来自the documentation
返回: 此throwable的原因,如果原因不存在或未知,则为null。
您可以使用commons-lang ExceptionUtils.getMessage(e.getCause())
或ExceptionUtils.getRootCauseMessage(e)