在记录异常原因时是否必须测试空值?

时间:2011-07-23 19:35:38

标签: java exception-handling

我想在捕获异常时将这些内容写入日志:

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

拨打e.getCause时是否需要检查空?或者它总是会填充一个值吗?

1 个答案:

答案 0 :(得分:3)

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

  

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

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