|
|||||||
| Débats Les débats et sondages sur le langage et les technologies Java |
|
|
Publicité ' | |||||||||||||||||
|
|
|
Outils de la discussion |
|
|
#61 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : octobre 2004 Messages : 4 678 ![]() |
mouaïii (pour, mais avec reserve).
Comme la majorité: le principe est bon, la syntaxe est un peu à revoir. En y réfléchissant, j'ai pas trouvé autre chose que le célebrissime virgule. Mais c'est pas très génial non plus
|
|
|
00
|
|
|
#62 |
|
Membre éclairé
![]() ![]() Inscription : décembre 2005 Messages : 315 ![]() |
Je suis pour. Et sans vouloir lever une nouvelle polémique qui semble choquer beaucoup, je dois admettre que personnellement je trouve la notation « | » (façon opérateur logique) tout à fait explicite.
|
|
|
00
|
|
|
#63 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : octobre 2004 Messages : 4 678 ![]() |
Encore pour, mais après m'avoir documenté sur la chose, je retire tout ce que je viens de dire sur la syntaxe (le fameux, enfin, le pauvre |): c'est tout à fait compréhensible du moment que c'est réalisé en fait par disjonction de types.
|
|
|
00
|
|
|
#64 | ||
|
Expert Confirmé Sénior
![]() Inscription : avril 2002 Messages : 2 676 ![]() |
Je rajouterai contre le | qu'il est incohérent avec le reste de ce qui est fait en JAVA. C'est illogique d'utiliser le | pour les catch si on ne fait pas également:
Code :
|
||
|
|
00
|
|
|
#65 |
|
Membre habitué
![]() Inscription : novembre 2007 Messages : 129 ![]() |
ca marche tres bien en python pourquoi pas en java
|
|
|
00
|
|
|
#66 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : octobre 2004 Messages : 4 678 ![]() |
Bonjour.
Bah ... peut être que parceque Java est très différent de Python et ce sur tous les plans ? Bref, ce genre de raisonnement n'est pas valable, sinon, on finirait par avoir une sorte de mélange hétérogène de trucs empreintés à d'autres langages et qui ne collent pas forcément dans la logique de Java. |
|
|
00
|
|
|
#67 | ||
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 143 ![]() |
Bonjour,
Le fait d'attraper en une seule ligne plusieurs erreurs me semble être une bonne idée. Il est eventuellement faisable de faire hériter les erreurs d'une classe abstraite dans le but d'en attraper une seule lorsqu'il est succeptible d'arriver plusieurs erreurs, supposons : Code :
|
||
|
|
00
|
|
|
#68 | |
|
Expert Confirmé Sénior
![]() ![]() Inscription : octobre 2004 Messages : 4 678 ![]() |
Bonjour
Citation:
- C'est déjà le cas: Le type Throwable est le parent de toutes les exceptions, quel que'elles soient. - T'as pas toujours le contrôle dessus: si tu travailles avec une API tièrce (tu le fais à 90% du temps - C'est pas très malin d'attraper un type d'esceptions plus général que ceux que tu attends. |
|
|
|
00
|
|
|
#69 |
|
Membre à l'essai
![]() Inscription : septembre 2006 Messages : 62 ![]() |
même remarque que dans la proposition d'un switch sur String.
Je trouvé enuiyeux de faire plusieurs catch et ne pas catcher tous les exceptions dans une seule. |
|
|
00
|
|
|
#70 | |
|
Membre chevronné
![]() Inscription : novembre 2005 Messages : 610 ![]() |
Citation:
__________________
" Jag blev dömd för fildelning och allt jag fick var en sketen t-shirt. " (tankafritt.nu) PAS DE REPONSE PAR MESSAGE PRIVE ! Penser au bouton Résolu en bas de la discussion... |
|
|
|
00
|
|
|
#71 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : février 2005 Messages : 4 066 ![]() |
Pour le principe, mais effectivement la symtaxe pourrait etre améliorée, en particulier en utilisant l'ancetre des exceptions: cette information est a mon avis essentielle pour le compilateur, a moins de descendre tres bas par défaut (Throwable), mais je trouverai ça une très mauvaise pratique.
|
|
|
00
|
|
|
#72 |
|
Invité régulier
![]() Inscription : janvier 2008 Messages : 23 ![]() |
On peut bien faire un catch(Exception e), mais parfois c'est vraiment trop générique, un niveau intermédiaire entre catcher toutes les exceptions une à une et catcher Exception, ça peut être utile, donc oui.
|
|
|
00
|
|
|
#73 | ||
|
Expert Confirmé
![]() ![]() Inscription : janvier 2005 Messages : 2 807 ![]() |
Une fois, en écrivant plein de fois le même traitement pour des exceptions différentes (mais sans liens de parenté direct), je m'étais dit "ça serait vachement bien de faire ça"... Faudrait le proposer...
Jusqu'à ce que je me dise : Code :
Throwable? Exception? La plus proche ancêtre commun? Question à laquelle je n'ai pas trouvé de réponse satisfaisante... |
||
|
|
00
|
|
|
#74 | ||
|
Invité régulier
![]() Inscription : janvier 2008 Messages : 23 ![]() |
Effectivement, ça mérite réflexion... Pas non plus encore trouvé de solution qui me plaise tellement...
L'idée qui me dérange le moins (à défaut de me satisfaire...), serait que si on veut catcher plusieurs exceptions à la foi, alors le type de l'exception n'est pas trop important, vu qu'on veut un seul traitement pour toutes. Par exemple : Code :
Si on veut pouvoir déterminer le type de e, alors y'a qu'à faire un catch pour chaque type d'exception... et du coup on oublie cette proposition 7. |
||
|
|
00
|
|
|
#75 |
|
Expert Confirmé Sénior
![]() Inscription : avril 2002 Messages : 2 676 ![]() |
En fait ce n'est pas l'idée du tout. On ne peut pas et ne pourra pas catcher pas plusieurs exceptions en meme temps. Ce serait totalement incompatible avec la notion actuelle d'exception qui interromp le block d'execution.
Il n'y a donc pas de question a ce poser de concaténation ou autre traitement particulier. La variable ne ne peux en effet etre du type ExceptionA ou ExceptionB, il faudra obligatoirement un ancêtre commun, ça pourrait être Throwable mais c'est réducteur. Je pense que le plus judicieux serait de spécifier cet ancêtre(cf ma proposition). |
|
|
00
|
|
|
#76 |
|
Invité régulier
![]() Inscription : janvier 2008 Messages : 23 ![]() |
C'est personnel, mais en fait je trouve très bien la situation actuelle. Je ne vois pas tellement de bonne solution pour catcher plusieurs exceptions en même temps. Si on a besoin de le faire, c'est sûrement que dans le try {...}, il y a une bonne quantité de code. Et que donc la gestion des exceptions pourrait être améliorée... On peut même implémenter ses propres exceptions pour ça.
|
|
|
00
|
|
|
#77 |
|
Membre à l'essai
![]() Inscription : novembre 2006 Messages : 25 ![]() |
Je suis plutôt pour, mais je crois je la vrai solution au merdier serait de changer la hierarchie des class d'Exception.
Throwable devrait être unchecked. Error extends throwable devrait contenir toutes les erreur découlant d'erreurs de programmation (NullPointerException --> NullPointerErrorr, etc...) et non pas de circonstance non controllées par le programmeur. Exception devrait devenir unchecked (comme l'est RuntimeException). RuntimeException devrait être supprimée et une nouvelle class CheckedException devrait être créée et utilisée avec modération. Ceci enleverait 90% du code de traitement des erreur sans en réduire la fonctionnalité (qui peut me dire la dernière fois qu'il a codé autre chose qu'un rethrow ou un log de l'erreur). |
|
|
00
|
|
|
#78 | |||
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 654 ![]() |
Throwable ne peut pas être unchecked, car cela impliquerait que toutes les classes filles serait unchecked, et donc qu'il n'y aurait plus de checked-exception...
Citation:
Citation:
Citation:
![]() Par contre cela casserait toute compatibilité à cause de la réorganisation de l'héritage des exceptions... a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
|||
|
00
|
|
|
#79 |
|
Membre du Club
![]() Inscription : décembre 2007 Messages : 165 ![]() |
Je suis totalement pour, il arrive qu'on ets plusieurs chose à catch... Mais le "|" m'as un peu choquer au début ^^ peros je préférerais un "," enfin bref...
|
|
|
00
|
|
|
#80 |
|
Membre du Club
![]() Inscription : octobre 2007 Messages : 71 ![]() |
Pour avec la virgule et déclaration de classe explicite.
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com