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;
}
ArgumentNullException
dans des cas comme ça (plutôt que NullReferenceException
) - c'est en fait une très bonne question de savoir pourquoi vous soulevez NullPointerException
explicitement ici (plutôt que différent).
IllegalArgumentException
ou NullPointerException
pour un argument nul. La convention JDK est la dernière.