InvalidParameterException ou IllegalArgumentException
En Java quand devriez-vous jeter IllegalArgumentException
et quand InvalidParameterException
?
Venant d'un C# arrière-plan, nous aurions un ArgumentNullException
qui découle de la ArgumentException
. Si je veux mettre en œuvre un équivalent ArgumentNullException
/ParameterNullException
en Java devrais-je prolonger IllegalArgumentException
ou InvalidParameterException
?
Note: je ne suis pas en train de mettre en œuvre un ArgumentNullException
/ParameterNullException
, ce serait juste m'apporter une meilleure compréhension si je pourrait correspondre ces avec le C# framework.
OriginalL'auteur Cornelius | 2011-01-11
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de nécessité apparente de la sous-classe de ces exceptions, j'aimerais les utiliser tout de suite pour signaler, qu'une méthode a été appelée avec le arguments. J'avais toujours décrire la véritable cause dans les exceptions partie du message.
java.security.InvalidParameterException
est déjà une sous-classe deIllegalArgumentException
conçu pour une utilisation par les JCA/JCE moteur de classes (JavaDoc) et je ne voudrais pas l'utiliser ou de la sous-classe dans un contexte différent.InvalidParameterException
plutôt queIllegalArgumentException
?probablement jamais 🙂
Je ne l'utiliserais spécial
InvalidParameterException
uniquement si j'avais à mettre en œuvre des interfaces ou sous-types de la Java Architecture Cryptographique cadre et lancement de cette exception est obligatoire (ce que j'ai l'habitude de laisser aux experts 😉 )OriginalL'auteur Andreas_D
D'abord merci pour votre question. Maintenant, je sais à propos de l'existence de
InvalidParameterException
. Cette exception appartient au package java.sécurité et conformément à sa javadocIllegalArgumentExcption appartient à java.lang et peut donc être utilisé pour n'importe quel but.
Je crois que dans 99,9% des cas, vous devez utiliser IllegalArgumentExcption et l'utilisation InvalidParameterException seulement dans un contexte de sécurité.
OriginalL'auteur AlexR
Il y a déjà une exception à jeter quand vous vous attendez à des paramètres à ne pas être null: NullPointerException. Certains programmeurs pense que seul le code défectueux jette NullPointerException, mais si vous avez vraiment attendre les paramètres de ne pas être nulle, et vous ne pouvez pas récupérer à partir de cette situation, c'est l'exception au droit à jeter. À partir de la JavaDoc:
Mais si nous ne parlons pas de valeurs null, mais seulement une valeur non valide, alors vous devriez jeter IllegalArgumentException. À partir de la JavaDoc:
Comme une suggestion générale, je dirais que vous devriez vous familiariser avec le Java exceptions (à partir de java.lang paquet), et de les utiliser de façon appropriée. Si vous ne trouvez pas une exception appropriée, puis étendre.
Également noter que l'exception "InvalidParameterException" dans le package "java.de sécurité", ce qui est probablement pas ce que vous voulez.
OriginalL'auteur jpkrohling