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.

19
demandé sur ehdv 2010-03-02 18:22:55

3 réponses

Vous pouvez mentions légales utilisation D'une API et ont encore valide données; tout est sémantique.

8
répondu feeling abused and harassed 2013-09-11 20:17:22

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.

2
répondu stacker 2010-03-08 20:07:27

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.

-1
répondu ChadNC 2010-03-02 15:30:24