Précédent   Forum du club des développeurs et IT Pro > Java > Communauté Java > Débats

Débats Les débats et sondages sur le langage et les technologies Java

Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Affichage des résultats du sondage: Êtes-vous pour ou contre cette proposition ?
Pour 334 86,75%
Contre 51 13,25%
Votants: 385. Vous ne pouvez pas participer à ce sondage.

Publicité
'
Réponse
 
Outils de la discussion
Vieux 16/12/2007, 20h49   #1
vbrabant
Expert Confirmé Sénior
 
Inscription : mai 2003
Messages : 3 293
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 3 293
Points : 7 670
Points : 7 670
Par défaut JDK 7: Proposition 7 : Pouvoir catcher plusieurs exceptions en une fois

Aujourd'hui :

Code :
1
2
3
4
5
6
7
8
try {
    return klass.newInstance();
} catch (InstantiationException e) {
    throw new AssertionError(e);
} catch (IllegalAccessException e) {
    throw new AssertionError(e);
}
Demain :

Code :
1
2
3
4
5
6
try {
    return klass.newInstance();
} catch (InstantiationException | IllegalAccessException e) {
    throw new AssertionError(e);
}
__________________
Vincent Brabant

Ne pas me contacter par MP ni par mail pour des questions techniques. Ma liste d'amis restera vide.
vbrabant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 09h18   #2
Napalm51
Membre confirmé
 
Inscription : septembre 2007
Messages : 282
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 282
Points : 282
Points : 282
Pour, simplement car dans certaines applications, il n'est pas rare de vouloir effectuer le même traitement si l'une ou l'autre des exceptions est lancée, alors que ces dernières ne peuvent être regroupées dans un même type (si ce n'est Exception mais là ...)
Napalm51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 09h50   #3
Uther
Expert Confirmé Sénior
 
Avatar de Uther
 
Homme
Inscription : avril 2002
Messages : 2 676
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2002
Messages : 2 676
Points : 5 103
Points : 5 103
Pour le principe mais à condition d'utiliser une autre syntaxe.

Le "|" comme séparateur m'a fait sursauter. Ca me parrait une très mauvaise idée d'utiliser comme séparteur le même symbole qu'un opérateur binaire .
De plus, la classe de l'exception commune "e" n'est pas spécifié ce qui n'est pas naturel dans un catch(et en java tout court même).

Je verais plutôt une syntaxe du style:
Code :
1
2
3
...
catch (InstantiationException, IllegalAccessException : Exception e){
...
édition: en fait faire la déclaration en premier comme dans le foreach serait plus logique:
Code :
1
2
3
...
catch (Exception e : InstantiationException, IllegalAccessException){
...
Uther est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 10h11   #4
zulot
Membre éclairé
 
Inscription : décembre 2004
Messages : 662
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2004
Messages : 662
Points : 319
Points : 319
Je dirais pour, mais en gardant ce qu'a dis Uther et surtout pouvoir aussi utiliser l'ancienne version.

Les deux notations peuvent être pratique.
__________________
Pour me faire grandir
zulot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 10h19   #5
Uther
Expert Confirmé Sénior
 
Avatar de Uther
 
Homme
Inscription : avril 2002
Messages : 2 676
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2002
Messages : 2 676
Points : 5 103
Points : 5 103
Evidement il ne faut pas enlever l'ancienne syntaxe, mais de toute façon je ne pense pas qu'aucune des proposition ne soit destinée à remplacer la syntaxe actuelle. Ca serait idiot pour la compatibilté.

L'ancienne notation ne peut pas être enlevée pour 2 raisons:
- Elle permet 2 traitements différents suivant le type de l'exception alors que la nouvelle est justement concue pour éviter cela.
- Il ne faut pas casser la compatibilité, surtout pour ça.
Uther est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 10h24   #6
austin P.
Membre habitué
 
Avatar de austin P.
 
Inscription : juin 2004
Messages : 175
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : juin 2004
Messages : 175
Points : 142
Points : 142
plutot pour mais avec des réserves sur la syntaxe

cela evite quelques fois d'avoir des catch de 2 km de long et qui repetent la même chose
__________________
En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Jacques Rouxel : "Les shadoks")
austin P. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 10h36   #7
adiGuba
Expert Confirmé Sénior
 
Avatar de adiGuba
 
Homme
Développeur Java/Web
Inscription : avril 2002
Messages : 12 654
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Corse (Corse)

Informations professionnelles :
Activité : Développeur Java/Web
Secteur : Transports

Informations forums :
Inscription : avril 2002
Messages : 12 654
Points : 22 428
Points : 22 428
Citation:
Envoyé par Uther Voir le message
Pour le principe mais à condition d'utiliser une autre syntaxe.
+1

Le principe est intéressant mais j'aime pas trop la syntaxe

a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java Présentation de Java SE 7 (commentaires)
adiGuba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 10h41   #8
Gardyen
Membre chevronné
 
Avatar de Gardyen
 
Inscription : août 2005
Messages : 494
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France

Informations forums :
Inscription : août 2005
Messages : 494
Points : 676
Points : 676
Envoyer un message via ICQ à Gardyen
pour

mais réserve sur la syntaxe (pourquoi pas une bonne vieille virgule )
__________________
Nous les geeks, c'est pas qu'on a une case en moins, c'est juste qu'on compte à partir de zéro.
Plus les choses changent, plus elles restent les mêmes
Gardyen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h07   #9
bobuse
Membre confirmé
 
Avatar de bobuse
 
Inscription : janvier 2005
Messages : 229
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 229
Points : 217
Points : 217
Tout à fait d'accord ! Comme napalm51, ça me gave de devoir dupliquer du code pour gérer de manière identique plusieurs exceptions.

Mais je suis d'accord avec Uther pour dire que le | n'est pas une bonne idée. Je suis d'accord pour la virgule, par contre le "Exception" est implicite à mon avis.
bobuse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h08   #10
OButterlin
Modérateur
 
Avatar de OButterlin
 
Homme
Inscription : novembre 2006
Messages : 5 087
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2006
Messages : 5 087
Points : 5 821
Points : 5 821
Oui, et même restriction pour la syntaxe (plutôt "," que "|")
D'un autre côté, qu'est-il prévu pour la gestion de l'objet exception proprement dit ?
On le traite comme Throwable, Exception ou le premier ancêtre commun ?
Cette dernière pourrait être intéressante...
OButterlin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h13   #11
romaintaz
Rédacteur/Modérateur
 
Avatar de romaintaz
 
Homme Romain Linsolas
Java craftsman
Inscription : juillet 2005
Messages : 3 579
Détails du profil
Informations personnelles :
Nom : Homme Romain Linsolas
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Java craftsman
Secteur : Finance

Informations forums :
Inscription : juillet 2005
Messages : 3 579
Points : 6 721
Points : 6 721
Je suis pour, mais contre cette syntaxe. La virgule me parait pas mal, à défaut de mieux...
__________________
Nous sommes tous semblables, alors acceptons nos différences !
--------------------------------------------------------------
Liens : Blog | Page DVP | Twitter
Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
Critiques : Apache Maven
romaintaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h19   #12
bobuse
Membre confirmé
 
Avatar de bobuse
 
Inscription : janvier 2005
Messages : 229
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 229
Points : 217
Points : 217
Citation:
Envoyé par OButterlin Voir le message
On le traite comme Throwable, Exception ou le premier ancêtre commun ?
Cette dernière pourrait être intéressante...
Effectivement. Dans le cas de l'ancêtre commun, très intéressant, l'explicitation devient nécessaire, par exemple :
Code :
catch (PrinterAbortException, PrinterIOException : PrinterException e){
http://java.sun.com/javase/6/docs/ap...Exception.html
bobuse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h24   #13
Uther
Expert Confirmé Sénior
 
Avatar de Uther
 
Homme
Inscription : avril 2002
Messages : 2 676
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2002
Messages : 2 676
Points : 5 103
Points : 5 103
Citation:
Mais je suis d'accord avec Uther pour dire que le | n'est pas une bonne idée. Je suis d'accord pour la virgule, par contre le ": Exception" est implicite à mon avis.
Il me semble bien qu'il n'y a pas un seul endroit dans la syntaxe Java ou une classe est définie implicitement. C'est à mon humble avis bien plus clair ainsi. On ce retrouve toujours avec une syntaxe déclarative : "MaClasse monObjet" ou on identifie clairement l'objet et sa classe.

Par exemple dans for (listeDeString : String s) {} la variable s est bien définie avec son type alors que on pourrait le déduire de la liste.
Uther est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h42   #14
bassim
Membre expérimenté
 
Avatar de bassim
 
Homme
Ingénieur Réseaux
Inscription : février 2005
Messages : 647
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Ingénieur Réseaux
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2005
Messages : 647
Points : 592
Points : 592
Envoyer un message via MSN à bassim Envoyer un message via Yahoo à bassim
je suis pour , pour les mêmes raisons que les autres
__________________
Club des développeurs algériens

Where is my mind
bassim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h49   #15
OButterlin
Modérateur
 
Avatar de OButterlin
 
Homme
Inscription : novembre 2006
Messages : 5 087
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2006
Messages : 5 087
Points : 5 821
Points : 5 821
Ne pourrait-on pas imaginer un groupe d'exceptions plutôt ?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
public void maMethode1(...) throws GroupeException1
{
   ...
}
 
public void uneAutreMethode(...)
{
   try
   {
      maMethode1(...);
   }
   catch (GroupeException1 e)
   {
...
   }
Vous en pensez quoi ?
OButterlin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 12h02   #16
bobuse
Membre confirmé
 
Avatar de bobuse
 
Inscription : janvier 2005
Messages : 229
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 229
Points : 217
Points : 217
Citation:
Envoyé par Uther Voir le message
Il me semble bien qu'il n'y a pas un seul endroit dans la syntaxe Java ou une classe est définie implicitement. C'est à mon humble avis bien plus clair ainsi. On ce retrouve toujours avec une syntaxe déclarative : "MaClasse monObjet" ou on identifie clairement l'objet et sa classe.

Par exemple dans for (listeDeString : String s) {} la variable s est bien définie avec son type alors que on pourrait le déduire de la liste.
Oui oui, tout à fait d'accord. D'ailleurs je te rejoins dans mes messages suivants
bobuse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 12h03   #17
Uther
Expert Confirmé Sénior
 
Avatar de Uther
 
Homme
Inscription : avril 2002
Messages : 2 676
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2002
Messages : 2 676
Points : 5 103
Points : 5 103
OButterlin> Je suis pas sur d'avoir bien compris ton idée. En tout ca ca a l'air bien plus compliqué que la proposition.
Uther est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 12h47   #18
mavina
Responsable IRC
 
Avatar de mavina
 
Homme Frédéric Mora
Développeur Java
Inscription : octobre 2004
Messages : 1 815
Détails du profil
Informations personnelles :
Nom : Homme Frédéric Mora
Âge : 27
Localisation : Chine

Informations professionnelles :
Activité : Développeur Java
Secteur : Conseil

Informations forums :
Inscription : octobre 2004
Messages : 1 815
Points : 2 623
Points : 2 623
Envoyer un message via MSN à mavina Envoyer un message via Skype™ à mavina
Personnellement je suis plutot contre. Le fait est qu'on puisse catcher des exceptions avec un ancetre commun comme ceci :
Code :
1
2
3
 
catch (PrinterAbortException, PrinterIOException : PrinterException e){
}
est la même chose que de catcher dirrectement l'ancetre :
Code :
1
2
catch (PrinterException e){
}
Et si l'on veut en catcher une autre du même ancetre dans un bloc différent, on la catch avant..
Je pense pas que ce soit vital, le systeme actuel est relativement bien fait, ca n'apporte pas énormément.

F.
__________________
Développeur Java / Flex à Shanghai, Chine
mes publications
Mon dernier tutoriel : Messages Quit IRC : explications

La rubrique IRC recrute des redacteurs : contactez moi

Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]
mavina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 12h54   #19
bobuse
Membre confirmé
 
Avatar de bobuse
 
Inscription : janvier 2005
Messages : 229
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 229
Points : 217
Points : 217
Citation:
Envoyé par mavina Voir le message
Personnellement je suis plutot contre. Le fait est qu'on puisse catcher des exceptions avec un ancetre commun comme ceci :
Code :
1
2
3
 
catch (PrinterAbortException, PrinterIOException : PrinterException e){
}
est la même chose que de catcher dirrectement l'ancetre
Bon d'accord. En fait, mon exemple était nul !

Mais revenons à l'idée de départ de catcher deux exceptions, sans catcher leur ancêtre commun. T'es toujours contre ?
bobuse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 12h56   #20
mavina
Responsable IRC
 
Avatar de mavina
 
Homme Frédéric Mora
Développeur Java
Inscription : octobre 2004
Messages : 1 815
Détails du profil
Informations personnelles :
Nom : Homme Frédéric Mora
Âge : 27
Localisation : Chine

Informations professionnelles :
Activité : Développeur Java
Secteur : Conseil

Informations forums :
Inscription : octobre 2004
Messages : 1 815
Points : 2 623
Points : 2 623
Envoyer un message via MSN à mavina Envoyer un message via Skype™ à mavina
Bah le truc c'est que je vois pas quel intêret pourrait avoir cette notation, tu as un exemple concret qu'actuellement en java on ne peut pas faire et qui serait utile ?

F.
__________________
Développeur Java / Flex à Shanghai, Chine
mes publications
Mon dernier tutoriel : Messages Quit IRC : explications

La rubrique IRC recrute des redacteurs : contactez moi

Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]
mavina est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h16.


 
 
 
 
Partenaires

Hébergement Web