Précédent   Forum des professionnels en informatique > 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 Proposer ce sujet en actualité
 
Outils de la discussion
Vieux 16/12/2007, 20h49   #1
Expert Confirmé Sénior
 
Inscription : mai 2003
Messages : 3 299
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 3 299
Points : 5 714
Points : 5 714
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
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
Expert Confirmé
 
Avatar de Uther
 
Homme
Inscription : avril 2002
Messages : 2 231
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2002
Messages : 2 231
Points : 3 724
Points : 3 724
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){
...

Dernière modification par Uther ; 20/12/2007 à 10h16.
Uther est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 10h11   #4
Membre éclairé
 
Inscription : décembre 2004
Messages : 658
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2004
Messages : 658
Points : 317
Points : 317
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
Expert Confirmé
 
Avatar de Uther
 
Homme
Inscription : avril 2002
Messages : 2 231
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2002
Messages : 2 231
Points : 3 724
Points : 3 724
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
Membre habitué
 
Avatar de austin P.
 
Inscription : juin 2004
Messages : 171
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : juin 2004
Messages : 171
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
Rédacteur/Modérateur
 
Avatar de adiGuba
 
Homme
Développeur Java/Web
Inscription : avril 2002
Messages : 12 281
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 281
Points : 18 843
Points : 18 843
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
adiGuba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 10h41   #8
Membre confirmé
 
Avatar de Gardyen
 
Inscription : août 2005
Messages : 238
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : août 2005
Messages : 238
Points : 274
Points : 274
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.
Gardyen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h07   #9
Membre actif
 
Avatar de bobuse
 
Inscription : janvier 2005
Messages : 229
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 229
Points : 195
Points : 195
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
Modérateur
 
Avatar de OButterlin
 
Homme
Inscription : novembre 2006
Messages : 4 926
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2006
Messages : 4 926
Points : 5 484
Points : 5 484
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
Rédacteur/Modérateur
 
Avatar de romaintaz
 
Homme Romain Linsolas
Java craftsman
Inscription : juillet 2005
Messages : 3 320
Détails du profil
Informations personnelles :
Nom : Homme Romain Linsolas
Âge : 33
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Java craftsman
Secteur : Finance

Informations forums :
Inscription : juillet 2005
Messages : 3 320
Points : 5 159
Points : 5 159
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 !
--------------------------------------------------------------
Mes liens : Blog | Page DVP | Suivez-moi sur Twitter
Mes articles : Hudson | Sonar | Outils de builds Java Maven 3 | TeamCity| CitConf 2009
Mes critiques : Apache Maven
romaintaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h19   #12
Membre actif
 
Avatar de bobuse
 
Inscription : janvier 2005
Messages : 229
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 229
Points : 195
Points : 195
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
Expert Confirmé
 
Avatar de Uther
 
Homme
Inscription : avril 2002
Messages : 2 231
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2002
Messages : 2 231
Points : 3 724
Points : 3 724
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
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 : 26
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 : 568
Points : 568
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
Modérateur
 
Avatar de OButterlin
 
Homme
Inscription : novembre 2006
Messages : 4 926
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2006
Messages : 4 926
Points : 5 484
Points : 5 484
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
Membre actif
 
Avatar de bobuse
 
Inscription : janvier 2005
Messages : 229
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 229
Points : 195
Points : 195
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
Expert Confirmé
 
Avatar de Uther
 
Homme
Inscription : avril 2002
Messages : 2 231
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2002
Messages : 2 231
Points : 3 724
Points : 3 724
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
Responsable IRC
 
Avatar de mavina
 
Homme Frédéric Mora
Développeur Java
Inscription : octobre 2004
Messages : 1 814
Détails du profil
Informations personnelles :
Nom : Homme Frédéric Mora
Âge : 26
Localisation : Chine

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

Informations forums :
Inscription : octobre 2004
Messages : 1 814
Points : 2 382
Points : 2 382
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
Membre actif
 
Avatar de bobuse
 
Inscription : janvier 2005
Messages : 229
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 229
Points : 195
Points : 195
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
Responsable IRC
 
Avatar de mavina
 
Homme Frédéric Mora
Développeur Java
Inscription : octobre 2004
Messages : 1 814
Détails du profil
Informations personnelles :
Nom : Homme Frédéric Mora
Âge : 26
Localisation : Chine

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

Informations forums :
Inscription : octobre 2004
Messages : 1 814
Points : 2 382
Points : 2 382
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 Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 18h52.


 
 
 
 
Partenaires

Hébergement Web