Conventions De Nommage Des Exceptions Java
En Java, il existe une différence sémantique entre "Illégal" (comme dans IllegalArgumentException
) par rapport à " invalide" (comme dans javax.activity.InvalidActivityException
)?
au Cours de la mission, il est apparu utile d'écrire une sous-classe de IllegalArgumentException
pour représenter une série de caractères d'entrée qui ne peuvent pas être tokenized, et je me demande si la convention dit d'utiliser InvalidTokenException
ou IllegalTokenException
.
La seule différence que je peux trouver à ce jour est que java.lang
semble préférer "Illégal" tout en javax.*
préfère "non Valide". Cependant, il y a aussi java.security.InvalidParameterException
qui est une sous-classe de IllegalArgumentException
.
3 réponses
Vous pouvez mentions légales utilisation D'une API et ont encore valide données; tout est sémantique.
javax.activity.InvalidActivityException
est hérité de java.rmi.RemoteException
et vous ne voulez probablement pas cette dépendance. Voir aussi Javadoc
éditer à la fois invalide et illégal sont utilisés comme synonymes il ne fait pas de différence en sémantique, juste les questions techniques mentionnées ci-dessus.
EDIT: From Postgres Documentation Section 45.3.14. Mots délicats à éviter:
Illégal. "Illégale" représente une violation de la loi, le reste est "invalide". Mieux encore, dites pourquoi il est invalide.
AFAIK, IllegalArgumentException ne doit être utilisé que lorsque vous souhaitez signaler l'utilisation incorrecte d'un appel de méthode API. Ce que vous décrivez semble être un scénario où L'API n'a pas été utilisée correctement, donc je pense qu'une exception IllegalArgumentException serait le meilleur choix.