Lors de la lecture du code source JDK, je trouve courant que l'auteur vérifie les paramètres s'ils sont nuls, puis lance manuellement une nouvelle NullPointerException (). Pourquoi font-ils cela? Je pense qu'il n'est pas nécessaire de le faire car il lancera une nouvelle NullPointerException () quand il appellera une méthode. (Voici un code source de HashMap, par exemple :)
public V computeIfPresent(K key,
BiFunction<? super K, ? super V, ? extends V> remappingFunction) {
if (remappingFunction == null)
throw new NullPointerException();
Node<K,V> e; V oldValue;
int hash = hash(key);
if ((e = getNode(hash, key)) != null &&
(oldValue = e.value) != null) {
V v = remappingFunction.apply(key, oldValue);
if (v != null) {
e.value = v;
afterNodeAccess(e);
return v;
}
else
removeNode(hash, key, null, false, true);
}
return null;
}
ArgumentNullExceptiondans des cas comme ça (plutôt que NullReferenceException) - c'est en fait une très bonne question de savoir pourquoi vous soulevez NullPointerExceptionexplicitement ici (plutôt que différent).
IllegalArgumentExceptionou NullPointerExceptionpour un argument nul. La convention JDK est la dernière.