Java/Guava : handle 'null' arguments. 哪个异常?

标签 java guava

令人困惑:我们都知道 Doug Lea 的话:“Null 很糟糕”。他是对的。

现在我有一些方法可以通过使用 googles guava 来抛出异常。但现在正确的方法是什么?

1) 抛出一个NullPointerException

private void foo(Object arg) {
  Preconditions.checkNotNull(arg, "arg 'null' not accepted");
}

2) 或 IllegalArgumentException

private void foo(Object arg) {
  Preconditions.checkArgument(arg!=null, "arg 'null' not accepted");
}

3) 或 VerifyException

private void foo(Object arg) {
  Verify.verify(arg!=null, "arg 'null' not accepted");
}

我的意思是,第一种方法是否已过时,因为我们目前没有 NullPointer 访问权限? 以及为什么采用这种新的第三种方法。

有人能拨开迷雾吗?

最佳答案

我同意 Aaron 的观点。我的两分钱是因为在 Java 7 中 Objects.requireNonNull被添加,它抛出一个 NullPointerException,这就是我要走的路。在我看来,语言开发人员似乎已经通过这样做权衡了这个问题。

关于Java/Guava : handle 'null' arguments. 哪个异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28579492/

相关文章:

java - 查找java运行时所有可用的类

java - Collections.reverse() vs Lists.reverse() 哪个更快?

java - 如何在 Kotlin 中编写以下代码以实现回调

java - 尝试 thread.sleep 代码的一部分,但它会影响整个事情

java - 为什么 Log4j2 在 Windows bash 控制台中抛出错误

java - 递归创建树时出现 OutOfMemoryError 错误?

java - Guava Optional 作为可选参数的方法参数

java - 如何在 java 中从 Iterable 创建集合?

java - "IndexedSet", "MapSet"或 "SetMap"Java 实现

java - Flex 错误 flex.messaging.io.amf.ASObject 无法转换为