pb avec les Exceptions [Java] - Programmation
Marsh Posté le 13-06-2002 à 16:20:37
tu fais l'inverse
Code :
|
ceci dit je ne dirai pas que c'est la meillere solution.
Marsh Posté le 13-06-2002 à 16:21:54
mais c'est quoi là ton excetion ?????
c'est n'importe quoi !!!
bon attends 2 sec
Marsh Posté le 13-06-2002 à 16:23:36
DarkLord a écrit a écrit : mais c'est quoi là ton excetion ????? c'est n'importe quoi !!! bon attends 2 sec |
Bah ouais, j'avoue que g un peu de mal là...
Marsh Posté le 13-06-2002 à 16:23:38
Code :
|
Marsh Posté le 13-06-2002 à 16:24:13
DarkLord a écrit a écrit : tu fais l'inverse
|
Ms le truc, c que je voulais construire une "Exception" avec le message que g constitué !
Marsh Posté le 13-06-2002 à 16:25:08
Ecoute, explique toi clairement. Déjà si c'est une exception relative au BD tu ne dois pas hériter de Exception ...
Dis moi quel est le domaine, ce que tu veux faire + un exemple de chaque constructeur et on reparle.
Marsh Posté le 13-06-2002 à 16:25:36
el_gringo a écrit a écrit : Ms le truc, c que je voulais construire une "Exception" avec le message que g constitué ! |
ouais bin là tu crées un message local au constructeur. Il ne sera jamais stocké nul part de toutes manières !!
Marsh Posté le 13-06-2002 à 16:26:42
DarkLord a écrit a écrit :
|
Ooooohhh ! La belle exception, je m'en vais de ce pas l'ajouter dans mon, projet.
Merci Dakinou (tu permet que je t'appels Dakinou ? )
Marsh Posté le 13-06-2002 à 16:27:33
Code :
|
par exemple
(si tu veux pas garder de trace de l'exception nestée mais juste un msg)
Marsh Posté le 13-06-2002 à 16:29:29
DarkLord a écrit a écrit : ouais bin là tu crées un message local au constructeur. Il ne sera jamais stocké nul part de toutes manières !! |
ha, ms merde, je m'étais planté ds le 1er post. ce que j'voulais faire c'était ça::
Code :
|
Mais ta classe elle me va très bien.
Marsh Posté le 13-06-2002 à 16:30:49
greg@freestarthu a écrit a écrit :
|
Ha ouais, t'as raison. Je suis lourd moi desfois !
Merci aussi. Entre ta soluce et celle de Dark, 'faut que j'réfléchisse selon ce dont g besoin...
Marsh Posté le 13-06-2002 à 16:33:07
el_gringo a écrit a écrit : Ha ouais, t'as raison. Je suis lourd moi desfois ! Merci aussi. Entre ta soluce et celle de Dark, 'faut que j'réfléchisse selon ce dont g besoin... |
celle de dark est plus "complete", mais ça t'oblige a chopper la nestedexception et a recreer le msg qd tu en as besoin. à toi de voir ce que tu fais de ces xcptns. :-)
Marsh Posté le 13-06-2002 à 16:41:17
greg@freestarthu a écrit a écrit : celle de dark est plus "complete", mais ça t'oblige a chopper la nestedexception et a recreer le msg qd tu en as besoin. à toi de voir ce que tu fais de ces xcptns. :-) |
mais j'avais pas compris ca moi. J'avais compris qu'il voulait garder l'objet SQLException
Marsh Posté le 13-06-2002 à 16:41:41
el_gringo a écrit a écrit : ha, ms merde, je m'étais planté ds le 1er post. ce que j'voulais faire c'était ça::
|
bin oui et alors ????
tu crées un objet message puis tu fais super avec le message original
Marsh Posté le 13-06-2002 à 16:45:58
DarkLord a écrit a écrit : bin oui et alors ???? tu crées un objet message puis tu fais super avec le message original |
Putain de merde, je peut le faire, j'en suis sur !
Code :
|
Ouaaahh...
(Tout ça pour un truc qui compile pas en plus ! )
Marsh Posté le 13-06-2002 à 16:48:55
si c'est pour ca utilise le code de gregg qui fait ce que tu veux mais fait qd meme e.getErrorCode()
Marsh Posté le 13-06-2002 à 17:01:11
voila un exemple
en fait faut utiliser throws New Execption
Code :
|
Marsh Posté le 13-06-2002 à 17:13:54
veryfree a écrit a écrit : [...] |
avec quoi i vient lui 4h après, alors qu'on a déjà tout donné au gringo ! :-)
faut taper plus vite petit scarabée:lol:
Marsh Posté le 13-06-2002 à 18:30:35
avec quelques heures de retard...
Si tu tiens à avoir une message d'earreur plus clair, tu peux aussi modifier la méthode toString() à l'exception de dark :
Code :
|
Marsh Posté le 14-06-2002 à 08:41:31
DarkLord a écrit a écrit : si c'est pour ca utilise le code de gregg qui fait ce que tu veux mais fait qd meme e.getErrorCode() |
merci, j'avais vu qd même pour le e
Darklord, Benou; ça fait combien de temps que vous faites du Java ? Parce que, pour l'instant, j'en chierai bien sans le forum. Je suis curieux de savoir ds combien de temps je serais autonome (ou du moins beaucoup + que maintenant). En C/C++, g mis environ 6, 7 mois. (là, je peux dire que je le suis)
Marsh Posté le 14-06-2002 à 08:43:46
veryfree a écrit a écrit : voila un exemple en fait faut utiliser throws New Execption
|
Hein !? là, je t'avoue que je comprend pas du tout ou tu veux en venir ! Je vois pas le rapport avec ce que je voulais faire en fait...
Marsh Posté le 14-06-2002 à 08:46:38
c'est vrai que la classe de verry est très bizarre en fait elle contient l'exception et un exemple de balancement d'exception
bref sinon pour répondre à ta question, je développe en Java depuis presque 3 ans maintenant.
A+
Marsh Posté le 14-06-2002 à 09:11:04
el_gringo a écrit a écrit : Darklord, Benou; ça fait combien de temps que vous faites du Java ? Parce que, pour l'instant, j'en chierai bien sans le forum. Je suis curieux de savoir ds combien de temps je serais autonome (ou du moins beaucoup + que maintenant). |
ben moi j'ai pas temps d'expérience que ca en Java : J'ai fait un projet de fin d'année en Java/Corba. C'est là que je me suis mit à bien aimer ce langage.
ensuite, j'en ai fait un peu en DESS mais pas beaucoup. Et puis ca fait un an que je bosse et que je fait principalement du Java.
Donc, je fais du Java depuis environ 3 ans, mais pas à 100% du temps. En cumulant, je dois en avoir fait pdt 8 ou 10 mois...
Marsh Posté le 14-06-2002 à 10:46:00
Hé, g encore une question sur les exceptions:
ça sert juste à signaler les erreurs, ou plus que ça ?
Genre, au début de ma servlet, l'utilisateur doit se logger.
Le log peut échouer parce qu'on arrive pas à lire la tables des utilisateurs enregistrés, ds ce cas, je lance une exception (qui sera au final une ServletException). Mais, si le mot de passe est mauvais par exemlpe, il faut que j'utilise une exception aussi ? (en tt cas, ça devra pas être une ServletException, ça, c sur !)
Marsh Posté le 14-06-2002 à 10:48:21
moi dans ce cas la, j'utiliserai pas une exception : un echec de login c'est un évenement normal ... ca a rien "d'exceptionel". Ca remet pas en cause le fonctionnement de ton application.
Donc, non, moi j'utiliserai pas d'exception pour ca.
Marsh Posté le 14-06-2002 à 10:53:56
benou a écrit a écrit : moi dans ce cas la, j'utiliserai pas une exception : un echec de login c'est un évenement normal ... ca a rien "d'exceptionel". Ca remet pas en cause le fonctionnement de ton application. Donc, non, moi j'utiliserai pas d'exception pour ca. |
ha, ok. J'utiliserai plutot une valeur de retour alors
Marsh Posté le 14-06-2002 à 10:57:24
benou a écrit a écrit : moi dans ce cas la, j'utiliserai pas une exception : un echec de login c'est un évenement normal ... ca a rien "d'exceptionel". Ca remet pas en cause le fonctionnement de ton application. Donc, non, moi j'utiliserai pas d'exception pour ca. |
grand sujet de controverses que celui-ci
(j'ai pas dit que j'étais pas d'accord dans ce cas-ci:-))
Marsh Posté le 14-06-2002 à 10:58:44
greg@freestarthu a écrit a écrit : grand sujet de controverses que celui-ci (j'ai pas dit que j'étais pas d'accord dans ce cas-ci:-)) |
ca dépend qui la catches et où tu la catches. Et ca dépend des conséquences de ce catch.
Marsh Posté le 14-06-2002 à 11:00:04
greg@freestarthu a écrit a écrit : grand sujet de controverses que celui-ci (j'ai pas dit que j'étais pas d'accord dans ce cas-ci:-)) |
ouaip. C'est jamais très facile à décider ce genre de truc ...
Marsh Posté le 14-06-2002 à 11:02:36
DarkLord a écrit a écrit : ca dépend qui la catches et où tu la catches. Et ca dépend des conséquences de ce catch. |
Je pense que dans la majorité des cas, une exception doit être générée quand on est plus capable d'executer correctement une tache.
Toi, si la tache en question, c'est de vérifier que le login est correct, le fait de voir qu'il est incorrecte et "normal" => pas d'exception. (enfin c'est ma façon de voir)
Marsh Posté le 14-06-2002 à 11:08:24
benou a écrit a écrit : Je pense que dans la majorité des cas, une exception doit être générée quand on est plus capable d'executer correctement une tache. Toi, si la tache en question, c'est de vérifier que le login est correct, le fait de voir qu'il est incorrecte et "normal" => pas d'exception. (enfin c'est ma façon de voir) |
vé
mais par exemple
...
t'as une chaine qui vient d'un fichier de config ou d'un champ texte
... et ça DOIT etre un entier... t'as une autre solution que de catcher le NumberFormatException meme si c'est "normal" que ton user ait pu rentrer une lettre par erreur dans le formulaire ?
Marsh Posté le 14-06-2002 à 11:14:06
el_gringo a écrit a écrit : Hein !? là, je t'avoue que je comprend pas du tout ou tu veux en venir ! Je vois pas le rapport avec ce que je voulais faire en fait... |
+jve t embrouillé plus dans ce cas
Marsh Posté le 14-06-2002 à 11:27:00
greg@freestarthu a écrit a écrit : vé mais par exemple ... t'as une chaine qui vient d'un fichier de config ou d'un champ texte ... et ça DOIT etre un entier... t'as une autre solution que de catcher le NumberFormatException meme si c'est "normal" que ton user ait pu rentrer une lettre par erreur dans le formulaire ? |
à mon avis :
- si ca vient d'un fichier de config, tu catches le NumberFormatException tu créé une nouvelle exception ConfigurationException (avec le nom du fichier et le champs en erreur), et tu mets le NumberFormatException dedans (nested)
- si ca vient d'un champs, la vérification doit être fait au moment de la saisie ou de la validation. Une mauvaise saisie c'est un fonctionnement classique => tu dois la traiter avant de commencer le réél traitement => pas besoin d'exception : tu affiche un message d'erreur à l'utilisateur et tu annule le traitement métier.
enfin tout ca, ca dépend de la façon de voir de chacun ...
Marsh Posté le 14-06-2002 à 11:38:59
veryfree a écrit a écrit : +jve t embrouillé plus dans ce cas |
dsl, merci qd même !
Marsh Posté le 14-06-2002 à 11:50:42
benou a écrit a écrit : à mon avis : - si ca vient d'un fichier de config, tu catches le NumberFormatException tu créé une nouvelle exception ConfigurationException (avec le nom du fichier et le champs en erreur), et tu mets le NumberFormatException dedans (nested) |
tout a fait
Citation : - si ca vient d'un champs, la vérification doit être fait au moment de la saisie ou de la validation. Une mauvaise saisie c'est un fonctionnement classique => tu dois la traiter avant de commencer le réél traitement => pas besoin d'exception : tu affiche un message d'erreur à l'utilisateur et tu annule le traitement métier. |
oui mais comment tu verifie que justement il n'y a que des digits? bon oui, y'a des isDigit() methodes un peu partout... mais c tellement plus simple de faire le parseInt() dans un try/catch
Marsh Posté le 14-06-2002 à 11:55:29
greg@freestarthu a écrit a écrit : oui mais comment tu verifie que justement il n'y a que des digits? bon oui, y'a des isDigit() methodes un peu partout... mais c tellement plus simple de faire le parseInt() dans un try/catch |
ben bien sur que tu fais un parseInt ... pkoi pas en faire ?
moi je parlais des cas où il faut déclencher ou non une exception. Là y a pas le choix : l'api java est faite comme ca ...
Marsh Posté le 13-06-2002 à 16:17:50
tin tin, me revoila !
déja !? ben oui, déja !
Là, je crée une exception JDataException qui hérite de Exception.
C une exception que je lancerai lors d'une recherche dans une base de données.
cette exception peut être lancée si par exemple, un enregistrement n'est pas trouvé. Le constructeur sera alors:
Cette même exception peut être lancée suite au catch d'une SQLException.
c pour ça que j'aurai voulu avoir le constructeur suivant aussi:
Mais le compilateur ça lui plait pas. Vous savez ce qui me dit le salaud !? Que l'appel au constructeur de la classe mère doit se faire en 1er. Mais je fais comment moi ? Exception a pas de membre setMessage (String msg)...
Message édité par El_gringo le 13-06-2002 à 16:18:58