Maison >Java >javaDidacticiel >IllegalArgumentException ou NullPointerException : quelle exception pour un paramètre Null dans les méthodes Setter ?

IllegalArgumentException ou NullPointerException : quelle exception pour un paramètre Null dans les méthodes Setter ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-04 20:35:13785parcourir

IllegalArgumentException or NullPointerException: Which Exception for a Null Parameter in Setter Methods?

Quand lancer IllegalArgumentException ou NullPointerException pour un paramètre Null

Lors de la définition des méthodes de définition, les développeurs sont souvent confrontés au dilemme de savoir s'ils doivent lancer une IllegalArgumentException ou une NullPointerException pour un paramètre nul. Les deux exceptions semblent pertinentes en fonction de leurs descriptions JavaDoc :

  • IllegalArgumentException : Indique un argument illégal ou inapproprié.
  • NullPointerException : Levée lorsque null est utilisé de manière inappropriée.

Cependant, le Le choix est IllegalArgumentException (IAE) pour les raisons suivantes :

  • Utilisation prévue : NPE est destiné aux erreurs d'exécution liées au déréférencement nul, tandis que IAE est désigné pour valider les paramètres.
  • Trace trompeuse : NPE dans une trace de pile peut suggérer un déréférencement nul au lieu d'une valeur de paramètre incorrecte.
  • Cohérence : IAE est couramment utilisé pour d'autres erreurs de paramètres non valides, la cohérence est donc préférable.
  • Incohérences de l'API Java : Bien que l'API Java utilise parfois NPE pour les paramètres nuls, son incohérence ne doit pas être émulé.

Par conséquent, pour les méthodes de définition où null n'est pas approprié, IllegalArgumentException doit être utilisé pour transmettre l'intention de la validation des paramètres.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn