【发布时间】:2013-03-05 01:18:57
【问题描述】:
假设我们有一个服务方法getById(Long id),它根据其ID返回一个实体。如果 id 为空,正确的操作是什么?
抛出 IllegalArgumentException?
抛出 NullPointerException? (番石榴 Preconditions.checkNotNull 这样做)
返回空?
既然永远不会有 id == null 的实体,那么返回 null 似乎不是那么糟糕?我的意思是如果 id 不存在,该方法无论如何都会返回 null。
先决条件是很好的单行代码,但在这种情况下抛出 NullPointerException 似乎很极端。
这里的“最佳实践”是什么?
【问题讨论】:
-
为什么方法签名不能是
getById(long id),而是将NPE推送到服务消费者的代码?
标签: java nullpointerexception illegalargumentexception method-parameters