|
Réalisation 
|
|
comment bien nommer une exception ?
|
Bonjour à vous,
Merci pour vos réponses concernant 'conception de classes et utilisation
des exceptions'.
Donc je vais faire des tas d'exceptions :o).
Sérieusement: comment nommez vous vos exceptions ? Je m'explique: j'ai une
classe Utilisateur qui génère des exceptions. Par exemple dans une des
opérations de cette classe je déclenche l'exception:
AssociationCaracterisqueImpossible ( "l'association avec cette utilisateur
est impossible car la caractéristique " + car_id + "n'existe pas").
Comme vous pouvez le voir le nom de mon exception est assez grand :o).
Mais ce nom exprime bien l'idée de l'erreur selon moi. Par contre quand je
regarde les exceptions de base, on peut voir que le nom des exceptions se
terminent toujours par 'Exception'. Est-ce une norme plus ou moins
officielle ?
Et deuxième question: que pensez-vous des noms à rallonge. Pour ma part je
trouve intéressant de pouvoir comprendre à la lecture du code source ce
que fait telle ou telle fonction.
Cordialement.
--
.------------------------------------------------.
.^. | Didier Bretin, France | dbr@informactis.com |
/V\ |-----------------------| www.informactis.com |
// \\ | `------------------------|
/( )\ | Visit: http://www.vim.org/ |
^^-^^ `------------------------------------------------'
 |
 |
-----Message d'origine-----
De : Didier Bretin [mailto:dbr@informactis.com]
Envoyé : lundi 29 avril 2002 14:24
À : java@u-strasbg.fr
Objet : comment bien nommer une exception ?
>> Sérieusement: comment nommez vous vos exceptions ? Je m'explique: j'ai
une classe Utilisateur qui génère
>> des exceptions. Par exemple dans une des opérations de cette classe je
déclenche l'exception:
>> AssociationCaracterisqueImpossible ( "l'association avec cette
utilisateur est impossible car la caractéristique
>> " + car_id + "n'existe pas").
>> Comme vous pouvez le voir le nom de mon exception est assez grand :o).
Mais ce nom exprime bien l'idée
>> de l'erreur selon moi. Par contre quand je regarde les exceptions de
base, on peut voir que le nom des
>> exceptions se terminent toujours par 'Exception'. Est-ce une norme plus
ou moins officielle ?
Je n'ai jamais entendu parler d'une norme officielle sur le nommage des
exceptions. Cela dit :
il existe des objets qui sont "try-catchables" mais qui ne sont pas des
exceptions (tous les descendants de java.lang.Throwable). Ces derniers se
répartissent en deux catégories : les Exception et les Error. Quand un nom
de classe finit par Exception ou par Error, on sait tout de suite comment
les catcher. Je n'ai jamais encore vu de descendant de Throwable qui ne
soit ni une Exception ni une Error.
>> Et deuxième question: que pensez-vous des noms à rallonge. Pour ma part
je trouve intéressant de pouvoir
>> comprendre à la lecture du code source ce que fait telle ou telle
fonction.
Le longueur d'un nom, me semble-t-il, n'est pas la chose essentielle : il
faut toutefois que ce nom exprime clairement ce que fait la classe ou
l'objet qui lui est associé. Donc s'il faut un nom assez long pour cela
(ImpossibleCaracteristicAssociationException ...) pourquoi pas ? Quoique
dans ton cas l'adjectif "Impossible" ne me semble pas nécessaire :
CaracteristicAssociationException me paraît suffisant (s'il y a exception,
c'est qu'il y a problème !).
>> Cordialement.
Idem
--
.------------------------------------------------.
.^. | Didier Bretin, France | dbr@informactis.com |
/V\ |-----------------------| www.informactis.com |
// \\ | `------------------------|
/( )\ | Visit: http://www.vim.org/ |
^^-^^ `------------------------------------------------'
 |
 |
Le 29 Apr 2002 Didier Bretin a écrit :
>
> Merci pour vos réponses concernant 'conception de classes et
> utilisation des exceptions'.
>
Et en plus : http://www.sogid.com/javalist/fils2000/exceptions.html
--
Sur le Web, tout de suite.
Herve AGNOUX - diaam informatique
http://www.diaam-informatique.com
 |
 |
Et pour finir, sur javaworld, un excellent article expliquant les
différences entre Runtime et Checked exceptions :
http://www.javaworld.com/javaworld/javaqa/2002-02/01-qa-0208-exceptional.html ? A lire pour tous ceux qui se demandent comment les
NullPointerException peuvent ne pas être
attrapées...http://www.javaworld.com/javaworld/javaqa/2002-02/01-qa-0208-exceptional.html?
Nicolas Delsaux
----- Original Message -----
From: "Herve AGNOUX" <herve.agnoux@diaam-informatique.com>
To: <java@u-strasbg.fr>
Sent: Tuesday, April 30, 2002 4:41 AM
Subject: Re: comment bien nommer une exception ?
> Le 29 Apr 2002 Didier Bretin a écrit :
>
> >
> > Merci pour vos réponses concernant 'conception de classes et
> > utilisation des exceptions'.
> >
>
> Et en plus : http://www.sogid.com/javalist/fils2000/exceptions.html
>
> --
> Sur le Web, tout de suite.
> Herve AGNOUX - diaam informatique
> http://www.diaam-informatique.com
>
>
 |
 |
Le 30 Apr 2002 Didier Bretin a écrit :
>
> J'étais parti du principe que la classe sur laquelle je travaille
> allait retourner plein d'exception: j'associe chaque problème
> rencontré à une exception. Par exemple: - UtilisateurInvalideException -
> AssociationUtilisateurImpossibleException -
> RechercheImpossibleException,
>
Je trouve que c'est pas mal. Fait gaffe à bien définir la définition des
mots qui précise le type d'exception : "invalide", "impossible", en
essayant de les relier aux grandes classes java comme RuntimeException,
Exception, Error, etc.
Il faut le faire à partir des espaces qui, dans ton appli, relèvent
de l'invalide, de l'impossible, etc.
Par exemple si un utilisateur entre un numero de téléphone avec des
lettres, c'est invalide mais possible. Et une fois que tu as bien
verrouillé les possibles entrées invalides, tu te retrouves avec un
numéro de téléphone forcément valide, dont l'invalidité éventuelle
relève de l'impossible...
> etc.
>
> Or en me balladant sur le web, je constate qu'en fait les gens
> n'appliquent pas
> cette méthode: ils définissent un code pour chaque problème dans
> l'exception considérée.
>
Classe les dans la catégorie : "Les Pénibles". Mais c'est déjà mieux que
ce que je fais, la plupart du temps, qui consiste à définir une seule
exception, sans aucun code, que j'utilise pour tout le paquage :-)
Tu exagères, il n'y a pas que ça. Vois par exemple le traitement des
exceptions par SAX, il me semble que c'est simple et pas mal.
--
Sur le Web, tout de suite.
Herve AGNOUX - diaam informatique
http://www.diaam-informatique.com