相关疑难解决方法(0)

Objects.requireNonNull(T obj)而不是null检查并手动抛出IllegalArgumentException?

每当我必须检查方法的给定参数是否为空时,我曾经写过一个空检查并抛出一个IllegalArgumentException如果null检查失败:

    if (user == null) {
        throw new IllegalArgumentException("User can't be null.");
    }
Run Code Online (Sandbox Code Playgroud)

但是,通过阅读某些Java 8类的源代码ArrayList,我发现Oracle正在使用Objects.requireNonNull针对空值检查参数,然后,如果测试失败,NullPointerException则抛出a.

这样,早期的代码片段应该采用这种方法:

Objects.requireNonNull(user, "User can't be null.");
Run Code Online (Sandbox Code Playgroud)

更小,更易读.

假设我已经控制了系统的整个异常处理,(即使我不应该,有时它是业务的一部分来处理这些未经检查的异常),我应该替换我IllegalArgumentExceptionNullPointerException并使用Objects.requireNonNull而不是编写我自己的null检查抛出异常?

java exception-handling exception java-8

17
推荐指数
2
解决办法
4642
查看次数

标签 统计

exception ×1

exception-handling ×1

java ×1

java-8 ×1