Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2515 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Traduire des messages issus d'exceptions

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Traduire des messages issus d'exceptions

n°855466
El_gringo
Posté le 22-09-2004 à 10:19:05  profilanswer
 

Il semble y avoir un mecanisme de traduction des message d'exceptions, dans la méthode "getLocalizedMessage()" de "Throwable". Mais il n'y a nulle part de référence à une "Locale". Dans quel langage est censé "localiser" le message !?? Je n'comprend pas bien l'intéret de la chose.
Si quelqu'un à une idée...

mood
Publicité
Posté le 22-09-2004 à 10:19:05  profilanswer
 

n°855469
d4rK 3Mpr0​R
fr33 Kevin
Posté le 22-09-2004 à 10:25:41  profilanswer
 

nan, ce truc est une blague.
C'est sensé renvoyer le message dans la courante de la JVM, mais c'est à toi de faire le mécanisme de traduction. Et comme le message vient souvent de la chaine d'erreur de la fonction C soujacente (pour les IO du moins) ou directement du driver de BDD en JDBC c'est pas gagné pour filer un message d'erreur numéroté et localisé à l'utilisateur.
 
mais la question m'intéresse, je vais lire attentivement les réponses des autres.

n°855471
benou
Posté le 22-09-2004 à 10:33:14  profilanswer
 

moi je dirais que le message d'une exception n'est pas sensé être présenté à l'utilisateur ...


---------------
ma vie, mon oeuvre - HomePlayer
n°855480
d4rK 3Mpr0​R
fr33 Kevin
Posté le 22-09-2004 à 10:41:53  profilanswer
 

tu proposes quoi comme lien entre l'exception et ce qu'on présente à l'utilisateur ? (sachant que sur une IO, on a aucune autre indication que le message de l'exception)

n°855484
El_gringo
Posté le 22-09-2004 à 10:46:24  profilanswer
 

Ben ouais. sur une IO par exemple, se contenter d'un message : "erreur d'entrée sortie", ça reste vague quand même.


Message édité par El_gringo le 22-09-2004 à 10:46:47
n°855486
benou
Posté le 22-09-2004 à 10:46:40  profilanswer
 

d4rK 3Mpr0R a écrit :

tu proposes quoi comme lien entre l'exception et ce qu'on présente à l'utilisateur ? (sachant que sur une IO, on a aucune autre indication que le message de l'exception)


logiquement, l'utilisateur n'en a rien à battre de la raison technique de l'erreur. C'est plus une problématique développeur.
 
Donc faut essayer d'afficher à l'utilisateur le message d'erreur le plus précis possible, et dumper l'exception dans un fichier de log ou par mail ou un truc dans le genre, mais pas la présenter à l'utilisateur.
 
Dans la pratique, c'est bcp plus simple de faire un showDialog(e.getMessage()), mais bon ...


---------------
ma vie, mon oeuvre - HomePlayer
n°855489
El_gringo
Posté le 22-09-2004 à 10:48:29  profilanswer
 

Donc t'es d'accord avec "d4rK 3Mpr0R" : le getLocalizedMessage, c'est une blague ?

n°855501
gfive
Posté le 22-09-2004 à 11:06:32  profilanswer
 

d4rK 3Mpr0R a écrit :

tu proposes quoi comme lien entre l'exception et ce qu'on présente à l'utilisateur ? (sachant que sur une IO, on a aucune autre indication que le message de l'exception)


 
là où je bossais avant, on "nestait" les exceptions dans d'autres exceptions, dont le message était la clé correspondant au message d'erreur dans le fichier de localisation.
 
Comme ça, avec un  

Code :
  1. langFileManager.getString(e.getMessage());


on avait le message à afficher,  
 
et avec un  

Code :
  1. e.getCause()


on avait l'exception d'origine, ce qui permettait de la présenter dans les interfaces d'admin/report d'erreurs.
 
Je sais pas si c'est la panacée, mais c'était assez pratique, quoique lourd par moment.


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°855506
d4rK 3Mpr0​R
fr33 Kevin
Posté le 22-09-2004 à 11:12:10  profilanswer
 

gfive > je le note, et je m'en félicite. Merci.

n°855508
benou
Posté le 22-09-2004 à 11:14:00  profilanswer
 

El_gringo a écrit :

Donc t'es d'accord avec "d4rK 3Mpr0R" : le getLocalizedMessage, c'est une blague ?


pas forcément, mais je vois ca comme étant plus destiné au développeur qu'à l'utilisateur.
 
gfive> sympa comme méthode. mais j'aurais plutot ajouté un attribut spécial pour le code d'erreur plutot que d'utiliser le message de l'exception


---------------
ma vie, mon oeuvre - HomePlayer
mood
Publicité
Posté le 22-09-2004 à 11:14:00  profilanswer
 

n°855512
the real m​oins moins
Posté le 22-09-2004 à 11:18:26  profilanswer
 

benou a écrit :

logiquement, l'utilisateur n'en a rien à battre de la raison technique de l'erreur. C'est plus une problématique développeur.

catcher FileNotFoundException ou faire un file.exists(), là est la question [:petrus75]
 
 
(en plus tu te contredis, entre ce que tu préconisais - catcher l'exception - et ce que tu dis là :o)


Message édité par the real moins moins le 22-09-2004 à 11:22:58

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°855515
gfive
Posté le 22-09-2004 à 11:21:05  profilanswer
 

d4rK 3Mpr0R a écrit :

gfive > je le note, et je m'en félicite. Merci.


 
Ce qui était chiant, par exemple, c'était, toujours dans le cas des IOExceptions, l'obligation d'énormément tester pour pouvoir sortir un message pertinent.
 
Dans le genre :  
 

Code :
  1. try {
  2.   File f = new File("path/a/la/con" );
  3.    //Lectures et écritures.
  4. } catch(IOException ioe) {
  5.    throw new NotreException(message, ioe);
  6. }


 
là, on peut rien donner comme info, on est obligé de faire  

Code :
  1. if (f.exists()) {
  2.    if (f.canRead()) {
  3.        if (f.canWrite()) {
  4.            //lectures/ecritures
  5.        } else {
  6.            throw new NotreException("Error.File.Unreadable", f.getName(), null);
  7.             # ici, le f.getName() est inclus dans la chaîn extraite du fichier de langue avec un StringFormatter
  8.        }
  9.    } else {
  10.        throw new NotreException("Error.File.Unwritable", f.getName(), null);
  11.    }
  12. } else {
  13.    throw new NotreException("Error.File.NoSuchFile", f.getName(), null);
  14. }


 
Donc, bon...Super lourd, quoi...On n'a utilisé ce genre de trucs que dans les interfaces pour les clients finaux, qui se doivent d'être nickel. Pour les interfaces d'admin, c'était généralement beaucoup plus simple.
 
[edit] : grillaid! :D


Message édité par gfive le 22-09-2004 à 11:22:08

---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°855518
gfive
Posté le 22-09-2004 à 11:23:56  profilanswer
 

the real moins moins a écrit :

catcher FileNotFoundException ou faire un file.exists(), là est la question [:petrus]
 


 
Tu m'a grilaid, et je réponds :  
 
Quand on doit fournir un message à un utilisateur final qui n'y connaît rien, mais qui peut remédier au problème en fonction du message => if file.exists().. et message pertinent.
 
Si il peut de toutes façons rien faire, lui répondre "amarche pôs", suffit.


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°855519
d4rK 3Mpr0​R
fr33 Kevin
Posté le 22-09-2004 à 11:24:56  profilanswer
 

gfive> sympa comme méthode si le problème était fugitif [:mlc] (et non, j'ai rien à proposer à part que Sun remonte le code d'erreur UNIX et qu'on se démerde avec ça en mettant des wrappers par plateforme)

n°855525
gfive
Posté le 22-09-2004 à 11:29:46  profilanswer
 

d4rK 3Mpr0R a écrit :

gfive> sympa comme méthode si le problème était fugitif [:mlc] (et non, j'ai rien à proposer à part que Sun remonte le code d'erreur UNIX et qu'on se démerde avec ça en mettant des wrappers par plateforme)


 
bah, disons que en fait, on faisait ça pour nos propres exceptions : c'était toujours pour le chat Orange, et les exceptions étaient plutôt :  

Code :
  1. NoSuchUser
  2. Blacklisted
  3. NoSuchForum
  4. ....


 
donc, on maîtrisait complètement l'envoi des exceptions, et on faisait en sorte d'envoyer une exception par type d'erreur (comme s'il y avait un NoSuchFilException, FileUnreadableException...) Du coup, on avait pas souvent à faire ce gernre de trucs
 
Le coup du nesting nous permettait simplement de centraliser l'affichage des messages d'erreur, de simplifier les prototypes, et de permettre un héritage facilement, sans avoir à catcher Exception comme des bourrins.


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°855545
d4rK 3Mpr0​R
fr33 Kevin
Posté le 22-09-2004 à 11:49:55  profilanswer
 

c'est un chat par SMS ?

n°855547
gfive
Posté le 22-09-2004 à 11:51:51  profilanswer
 

d4rK 3Mpr0R a écrit :

c'est un chat par SMS ?


 
SMS/Wap/Web (html et/ou applet)/MMS, et maintenant vocal.
Pkoi?


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°855548
benou
Posté le 22-09-2004 à 11:53:42  profilanswer
 

the real moins moins a écrit :

(en plus tu te contredis, entre ce que tu préconisais - catcher l'exception - et ce que tu dis là :o)


je vois pas la contradiction ....


---------------
ma vie, mon oeuvre - HomePlayer
n°855552
d4rK 3Mpr0​R
fr33 Kevin
Posté le 22-09-2004 à 11:55:55  profilanswer
 

jfive > curiosité.

n°855557
gfive
Posté le 22-09-2004 à 11:59:05  profilanswer
 

d4rK 3Mpr0R a écrit :

jfive > curiosité.


 
Complètement hors sujet, je te déconseille de t'y inscrire, si tu veux pas te faire bombarder de teasings à la con!! :D
 


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Traduire des messages issus d'exceptions

 

Sujets relatifs
Qui a une idée pour traduire netbeans en francais?[Java] Multithreading et gestion des exceptions
Traduire '<a href="mailto:nom@truc.fr"></ a>' en Javaprogramme pour traduire html <-> xml
résolu[C linux]Logger mes messages[Access]Supprimer les messages de confirmation [Resolu]
[Les Exceptions ?] et [ANT ?]mini messages sous guppy
Gestion particulière d'exceptions à coup de finally...Format date des messages du forum Invision Powerboard
Plus de sujets relatifs à : Traduire des messages issus d'exceptions


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)