Maison >Java >javaDidacticiel >IllegalArgumentException ou NullPointerException : quelle exception lever pour les paramètres Null Setter ?

IllegalArgumentException ou NullPointerException : quelle exception lever pour les paramètres Null Setter ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-14 15:09:11453parcourir

IllegalArgumentException or NullPointerException: Which Exception to Throw for Null Setter Parameters?

Arguments nuls ou invalides : IllegalArgumentException vs NullPointerException

Un dilemme courant lors de la définition d'une méthode de définition consiste à déterminer l'exception appropriée à lever lorsqu'un Le paramètre null est reçu. IllegalArgumentException (IAE) et NullPointerException (NPE) semblent applicables sur la base de la documentation Java.

IAE vs NPE : la différence

NPE est généralement générée par le moteur d'exécution lorsque null est utilisé de manière inappropriée. En revanche, IAE est expressément conçu pour indiquer qu'un argument illégal ou inapproprié a été transmis à une méthode.

Raisons d'utiliser IAE

Pour un paramètre nul dans un méthode setter, IAE est préférable à NPE pour plusieurs raisons :

  • Destiné Objectif :IAE est explicitement conçu pour la validation des paramètres, ce qui en fait le choix naturel dans ce scénario.
  • Clarté : Un NPE dans une trace de pile suggère un déréférencement nul, tandis qu'un IAE indique un paramètre illégal, qui est la véritable cause dans ce cas.
  • Cohérence :Tous les autres types de données de paramètres non valides sont généralement lancez IAE, garantissant une gestion cohérente.
  • Flexibilité : Le message d'exception personnalisé peut communiquer des détails spécifiques sur l'erreur, éliminant ainsi le besoin d'une gestion NPE séparée.

Utilisation de l'API et contre-argument

Bien que certaines parties de l'API Java utilisent NPE pour les arguments nuls, cette incohérence Cette approche ne devrait pas justifier l’utilisation de NPE plutôt que d’IAE dans ce contexte spécifique. Les raisons décrites ci-dessus soutiennent fortement l'utilisation d'IAE pour les paramètres nuls illégaux dans les méthodes de définition.

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