【发布时间】:2017-04-07 03:34:53
【问题描述】:
当你想抛出 NullPointerException 时我会选择什么?
1)
if(parameter != null){
// do something
} else {
Log.error("Reason for Exception.");
throw new NullPointerException();
}
2)
try{
// do something
} catch (NullPointerException npe) {
Log.error("Reson for Exception.");
throw npe;
}
【问题讨论】:
-
没有,我会抛出
IllegalArgumentException,但我更喜欢第一个 -
老实说...我永远不会想要手动触发
NPE,如果这是一种方法,我宁愿在那里抛出IllegalArgumentException。 -
Effective Java 为 NPE 提供建议,但我也支持 Kevin 和 Pau。
-
这里的另一件事是你不应该记录和重新抛出。这可能会导致针对同一异常的多条消息。如果你要扔,那就扔吧。如果您想添加有关原因的额外信息,请在消息中引发新异常。
标签: java if-statement exception try-catch null-pointer