Conceptuellement, ça vous parait bien ça ?

Conceptuellement, ça vous parait bien ça ? - Java - Programmation

Marsh Posté le 02-10-2002 à 12:22:15    

Faire le truc suivant dans une appli :  
Dériver Exception en MyAppException
qui serait la base de toutes mes exceptions.
Dans cette exception, créer un constructeur qui :
 1 - Appel le constructeur d'Exception (avec super ()).
 2 - Logue l'exception (dans un fichier).
 
c correcte selon vous ?
parce que ça serait fichtrement pratique !

Reply

Marsh Posté le 02-10-2002 à 12:22:15   

Reply

Marsh Posté le 02-10-2002 à 12:28:06    

je pense qu'il est mieux de garder les vraies exceptions, ne fut-ce que pour la trace
IOException, SQLException, etc.. si tu commences à lancer des exceptions customisées partout à la place, tu vas perdre toutes tes traces.
le coup du log ouais... mais bon.


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 02-10-2002 à 12:34:06    

El_Gringo a écrit a écrit :

c correcte selon vous ?



non
 
Une exception c'est fait pour prévenir la couche supérieure d'un problème. Et donc c'est à ta couche supérieure de la catcher et de loguer.
 
Il ne doit y avoir aucun code business dans une exception


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 02-10-2002 à 14:36:52    

Ok, ok, j'le fais pas.
J'étais pas du tout sûr de mon coup en fait.

Reply

Marsh Posté le 02-10-2002 à 14:37:02    

Ha... merci ! :hello:

Reply

Marsh Posté le 03-10-2002 à 10:24:37    

Ben moi, je trouvais que c'était une bonne idée.
Si toutes les exceptions que tu définis sont une sous-classe d'une exception racine que tu as défini aussi, moi, je trouve cela propre. Tu es sûr de pouvoir attraper toutes les exceptions de ton propre programme, tout en laissant passer les autres exceptions. Cela offre un très bon contrôle.
 
Maintenant, s'il s'agit d'encapsuler les exceptions standard, c'est différent. Quoique... Si tu as besoin de les enrichir avec d'autres informations qui te sont propres, pourquoi pas.
 
greg> De toute façon, quand tu conçois un logiciel un tant soit peu gros, avec plusieurs couches, il est largement préférable que chaque couche définisse ses propres exceptions. Sinon, pour être sûr que tu attrapes toutes tes propres cas d'erreur, soit tu es obligé d'ajouter un "throws Exception" à toutes tes fonctions, ce qui est horriblement crade et dangereux, soit tu te tapes une clause "throws" qui inclut plusieurs dizaines d'exceptions différentes, ce qui n'est pas top lisible (donc maintenable)... :sarcastic:  
 
Le hic, c'est que si chaque couche a ses propres exceptions, tu es obligé d'avoir un mécanisme de type "je récupère les exceptions de la couche d'en-dessous, et je lève une des exceptions de ma propre couche"... ce qui fait que tu perds de toute façon trace des exceptions des couches basses.
 
La solution : à partir du JDK 1.4, il est possible de "chainer" les exceptions. Ainsi quand tu lèves une exception d'une couche donnée, tu lui attaches l'exception de la couche d'en dessous. La couche d'au-dessus récupérera donc bien une exception de la couche courante (pas une autre), mais tu n'auras pas perdu les exceptions des couches basses.
 
Et pour le debug, tu peux ensuite, à l'aide d'un outil approprié, consulter cette pile d'exceptions pour choisir le message et la pile d'exécution les plus appropriés pour comprendre le problème.
 
Avec un JDK 1.3.1 ou antérieur... pas le choix, il faut te faire ta propre classe "ChainedException" qui gère ce mécanisme de chainage d'exception.
 
Sinon, pour le coup du log, c'est une très bonne idée.

Reply

Marsh Posté le 03-10-2002 à 11:57:14    

je suis pas tout à fait d'accord  :sleep:


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 03-10-2002 à 12:17:02    

Mais encore ?  :??:  :heink:  :D

Reply

Marsh Posté le 03-10-2002 à 12:25:12    

ben j'ai la flemme :o


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 03-10-2002 à 13:08:17    

:sarcastic:  
Tu ne pourras donc pas avoir raison ici...  :p  :fuck:  
 
Allez, un peu de courage, ça m'intéresse, moi, tes arguments...  :spookie:

Reply

Marsh Posté le 03-10-2002 à 13:08:17   

Reply

Marsh Posté le 03-10-2002 à 13:13:42    

plus tard ;)


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 03-10-2002 à 15:48:45    

OK, j'attends.  ;)

Reply

Marsh Posté le 03-10-2002 à 16:22:14    

BifaceMcLeOD a écrit a écrit :

 
Avec un JDK 1.3.1 ou antérieur... pas le choix, il faut te faire ta propre classe "ChainedException" qui gère ce mécanisme de chainage d'exception.




 
Sans blague ???

Reply

Marsh Posté le 03-10-2002 à 17:40:42    

...Je suis pas bien avancé du coup moi ! :sarcastic:

Reply

Marsh Posté le 03-10-2002 à 18:02:36    

Renaud> Pas de commentaire...  ;)  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed