Whenever I had to check if the given parameters to a method are not null, I used to write a null check and throw a IllegalArgumentException if the null check fails:
There is a discussion of what kind of exception should be thrown when a method receives a null value it doesn't expect. Some people argue for NullPointerException
, some people argue for IllegalArgumentException
. The JDK way seems to be to throw NullPointerException
in such cases, which is why the Objects.requireNonNull
throws it.
But I wouldn't modify existing code just because of this method, although you might want to consider using Objects.requireNonNull
in new code. (Using it in generally makes code more readable than to check for null and throw an exception manually.)
Using Objects.requireNonNull(c)
is a very elegant way to check if the element is not null. But there is an interesting discussion about whether choosing NullPointerException
or IllegalArgumentException
--> IllegalArgumentException or NullPointerException for a null parameter?. So throwing NullPointerException
is the java way to express that a reference is null.
Otherwise, you can make your own method requireNotNull()
. It is simple :
public static <T> T requireNonNull(T obj) {
if (obj == null)
throw new NullPointerException();
return obj;
}
and you can change the exception NullPointerException
by IllegalArgumentException
.