令人困惑:我们都知道 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/