|
|||||||
| Débats Les débats et sondages sur le langage et les technologies Java |
|
|
Publicité ' | |||||||||||||||||
|
|
|
Outils de la discussion |
|
|
#1 | ||||
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2003 Messages : 3 293 ![]() |
Aujourd'hui :
Code :
Code :
__________________
Vincent Brabant Ne pas me contacter par MP ni par mail pour des questions techniques. Ma liste d'amis restera vide. |
||||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : novembre 2006 Messages : 5 087 ![]() |
Non, je n'aime pas le principe... je préfère devoir ajouter un throws Exception à ma méthode pour être certain que celui qui l'appel est conscient du problème...
|
|
|
00
|
|
|
#3 | ||
|
Membre confirmé
![]() Inscription : janvier 2005 Messages : 229 ![]() |
Là, je suis un peu perplexe. Car il faut prendre en compte la prop 7. Si on peut catcher plusieurs types d'exception, on peut alors écrire :
Code :
Qu'en pensez-vous ? |
||
|
|
00
|
|
|
#4 |
![]() Consultant informatique Inscription : février 2004 Messages : 1 180 ![]() |
Contre,
je vois pas bien l'intérêt ni l'application .. Cela veut-il dire que des exceptions non Runtime pourraient être "throwée" (dieu du français pardonnez moi ) sans déclaration préalable dans la signature de la méthode ?Je veux bien que le compilo ajoute le throws a la signature automatiquement mais jusqu'a nouvel ordre je ne suis pas un compilo, je le vois comment moi ce truc ? En parcourant tout le code de chaque méthode a chaque fois ? Et la javadoc dans tout ça ? Bulbo
__________________
[Java] [NetBeans] [CVS] La FAQ Java Merci de ne pas me poser de questions techniques par MP. !! J'aurais voulu être une conserve !! |
|
|
00
|
|
|
#5 |
![]() ![]() Inscription : décembre 2006 Messages : 1 877 ![]() |
Contre, idem que bulbo.
__________________
Systèmes d'Informations Géographiques- Projets : GeoAPI GeotoolKit PuzzleGISPour un monde sans BigBrother IxQuick ni censure RSF |
|
|
00
|
|
|
#6 | |||||
|
Membre confirmé
![]() Inscription : janvier 2005 Messages : 229 ![]() |
Citation:
Je pense que vous n'avez pas bien compris, ou alors c'est moi Je reformule l'exemple avec plus de détail. Avant : Code :
Code :
Est-ce que mon exemple convient ? |
|||||
|
|
00
|
|
|
#7 | |||||
![]() Consultant informatique Inscription : février 2004 Messages : 1 180 ![]() |
Citation:
Bon du coup j'ai relu l'exemple, et un exemple que je dois relire 3 fois pour en comprendre le fonctionnement me laisse a penser que la maintenance de ce genre de trucs risque d'être piégeuse.. Je pense que la methode englobante (et que l'on ne voit pas dans l'exemple, pourtant ça aurait aidé) déclare les throws des "several type" mais pas de Throwable, ce qui explique qu'aujourd'hui on soit obligé d'écrire un catch pour chaque type d'exception pour faire la même chose. Maintenant que va-t'il se passer si une exception non déclarée dans le throws arrive ? Le compilo saura que ce n'est pas bon et pourra indiquer que telle exception doit être catchée ? Ou bien l'exception sera rethrowée ( ) et on aura un crash au runtime ?Ca manque de précision; dans le cas ou le compilo retrouve ses petits c'est bon pour moi sinon a proscrire absolument. Bulbo
__________________
[Java] [NetBeans] [CVS] La FAQ Java Merci de ne pas me poser de questions techniques par MP. !! J'aurais voulu être une conserve !! |
|||||
|
|
00
|
|
|
#8 | |
|
Membre confirmé
![]() Inscription : janvier 2005 Messages : 229 ![]() |
Citation:
Ici, il n'est pas question de permettre de jeter des exceptions qui ne sont pas déclarées dans le throws. Il est bien question de permettre de déclarer dans le throws uniquement les exceptions pouvant être lancées par un throw, sachant que dans les types d'exceptions pris en compte sont bien ceux des méthodes englobées par le try et nom le type du catch. Mais c'est vrai que l'exemple n'est pas très clair. vbrabant, si tu pouvais nous éclairer un peu plus |
|
|
|
00
|
|
|
#9 |
![]() Consultant informatique Inscription : février 2004 Messages : 1 180 ![]() |
On parle de la même chose rassure toi.
Mais si tu regardes l'exemple, il y a un catch Throwable, qui, par définition catch tout. Imaginons que dans un premier temps tu ai déclaré dans ton throws toutes les exceptions que tu sais possible et que plus tard tu rajoutes un appel qui lance une nouvelle exception et que tu l'oublie celle la.. Que va faire le catch ? Catcher tout comme l'utilisation de Throwable laisse a penser ou ne va-t'il catcher que les exceptions déclarées dans le throws ? En fait je vois mal comment il pourrait savoir quoi catcher et il catchera tout (cas de try imbriqués: qui catch quoi ?) et donc rethrow de tout Comment ne plus avoir de problème de compil dans ce cas, il y aura de toute façon problème, ou ira la nouvelle exception ? Qui la catchera ? Ou aura-t'on droit a une Runtime ? Bref je ne veux pas de ce système, pourquoi ne pas faire des exceptions qu'on ne catch jamais et qui ne plante rien a la C++ tant qu'on y est .. Bulbo
__________________
[Java] [NetBeans] [CVS] La FAQ Java Merci de ne pas me poser de questions techniques par MP. !! J'aurais voulu être une conserve !! |
|
|
00
|
|
|
#10 | |
|
Membre confirmé
![]() Inscription : janvier 2005 Messages : 229 ![]() |
Citation:
|
|
|
|
00
|
|
|
#11 | |
![]() Consultant informatique Inscription : février 2004 Messages : 1 180 ![]() |
Citation:
Bref pas convaincu du tout par ce truc.. Bulbo
__________________
[Java] [NetBeans] [CVS] La FAQ Java Merci de ne pas me poser de questions techniques par MP. !! J'aurais voulu être une conserve !! |
|
|
|
00
|
|
|
#12 |
![]() ![]() |
Pour cette évolution, même si il faut bien faire attention au mot clé final, peut être ambigu dans la lecture
__________________
Cordialement, elitost(Eric Reboisson) SpringSource Certified Spring Professional Certifié SCWCD J2EE 5.0 Certifié SCJP J2SE 5.0 Certifié ITIL Foundation Responsable : FAQ Maven 2 , FAQ SCM Autres : Site web Developpez , Mon site personnel , Mon CV Twitter : Suivez moi sur Twitter |
|
00
|
|
|
#13 |
![]() ![]() Fabrice BouyéDéveloppeur Java Inscription : août 2005 Messages : 4 078 ![]() |
Pour, j'ai ai marre d'initialiser de nouvelles exceptions et de les chainer a la precedente avec initCause() a chaque fois.
__________________
Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes. suivez mon blog sur Développez.Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook |
|
00
|
|
|
#14 |
![]() ![]() Inscription : juillet 2002 Messages : 346 ![]() |
J'ai voté contre car je pense que ça permettrais une gestion plus laxiste des exception et que c'est mauvais.
Par contre, en lisant les différents messages je me pose des question quand à la compréhension, donc si l'auteur original, vbrabant, pouvait un peu plus expliquer ce serait sympa. |
|
|
00
|
|
|
#15 |
|
Membre confirmé
![]() Inscription : janvier 2005 Messages : 229 ![]() |
Effectivement, la proposition peut être mal comprise, et laisser à penser à du laxisme.
Je pense que c'est la notation qui n'est pas très explicite. Qu'est-ce qu'on pourrait trouver de mieux ? Bof ![]() Encore une fois, le problème ne se poserait pas avec la proposition 7, et ce serait beaucoup moins ambigü !! |
|
|
00
|
|
|
#16 | ||||||||||
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 656 ![]() |
Un petit contre, non pas contre la proposition mais contre la syntaxe qui est incompréhensible à mon avis...
D'ailleurs je pense que certain ne l'on pas bien compris... En fait il ne s'agit pas réellement d'un vrai catch puisqu'on laisse remonter les exception à chaque fois. Il s'agit plus d'un "filtre" qui permettrait de voir passer les exceptions juste avant de les remonter, par exemple pour les logger. Imaginer une méthode toute simple qui pourrait remonter des IOException : Code :
Maintenant si vous voulez rajouter un log au sein de cette méthode juste pour conserver une trace des problèmes rencontré tout en continuant à les remonter, il vous faut traiter chaque cas : Code :
Cette proposition vise à permet cela plus simplement, en utilisant un catch unique : Code :
Bref ce bloc catch ne correspond qu'à un simple passage pour l'exception qui sera quand même remonté... et du coup la syntaxe ne me plait pas. J'opterais plutôt pour ceci : Code :
Code :
a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
||||||||||
|
00
|
|
|
#17 |
|
Membre confirmé
![]() Inscription : juillet 2002 Messages : 621 ![]() |
Contre
perte de sémantique; La sémantique n'est elle pas la voie de la sagesse. Par contre un truc qui manque peut etre à JAVA c'est la possibilité d'écrire un listener d'exception. Pour les évènements java swing on branche un AWTEventListener sur le toolkit ce qui permet de tracer les actions utilisateurs (pour faire de la recherche en ergonomie, du debuggage, et des graphe fonctionnels... c'est super pratique). Je crois pas qu'on peut faire pareil avec les Exception. Si c'était possible on pourrait centraliser les log4J (je fais un appel dans le constructeur pour ma part). |
|
|
00
|
|
|
#18 | |||
|
Membre confirmé
![]() Inscription : janvier 2005 Messages : 229 ![]() |
Citation:
Reste à discuter si « throws » et le bon terme, mais je trouve que l'idée est la bonne. |
|||
|
|
00
|
|
|
#19 |
![]() Consultant informatique Inscription : février 2004 Messages : 1 180 ![]() |
Tient une idée si throws ne plait pas: watch
Comment ça on risque de confondre avec catch Bulbo
__________________
[Java] [NetBeans] [CVS] La FAQ Java Merci de ne pas me poser de questions techniques par MP. !! J'aurais voulu être une conserve !! |
|
|
00
|
|
|
#20 | ||
|
Membre Expert
![]() ![]() Inscription : février 2004 Messages : 1 833 ![]() |
Contre.
Je préfère la proposition 7 qui me semble être absolument équivalente (corrigez-moi si je me trompe) : Code :
|
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com