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 19/12/2007, 13h42   #21
bulbo
Rédacteur
 
Avatar de bulbo
 
Homme
Consultant informatique
Inscription : février 2004
Messages : 1 180
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 40
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : Finance

Informations forums :
Inscription : février 2004
Messages : 1 180
Points : 1 856
Points : 1 856
Pour,

mais comme beaucoup la syntaxe

Mavina > Sans parler de l'ancêtre et de la propal du forum, ça peut éviter de dupliquer du code, ce qui est toujours un gain intéressant (coding + maintenance)

J'ai le cas dans une grosse appli: j'ai un méthode qui lance un long processus et au cours de ce processus de nombreuses exceptions peuvent interrompre le tout.
Certaines sont simplement redirigées vers l'utilisateur (via des dialogues), certaines provoquent un traitement automatique afin de silencieusement remettre tout en ordre et finalement le reste (de type Exception) qui va provoquer l'arrêt de l'appli avec rapport et stacktrace.
J'aurais vraiment aimer n'avoir a écrire que trois block catch ce jour la..

Bulbo
__________________
[Java] [NetBeans] [CVS]
La FAQ Java
Merci de ne pas me poser de questions techniques par MP.
!! J'aurais voulu être une conserve !!
bulbo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 13h46   #22
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 mavina Voir le message
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 ?
Cela permettrait de déterminer un comportement différent pour des exceptions différentes, par exemple pour les englober dans une exception commune, par exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
	public static void method() throws MyException {
		try {
 
			// Code pouvant renvoyer des IOException / SQLException
 
		} catch (IOException e) {
			throw new MyException("erreur method", e);
		} catch (SQLException e) {
			throw new MyException("erreur method", e);
		}
	}
On pourrait utiliser directement ceci (exemple avec la syntaxe de Uther que je trouve bien plus clair) :
Code :
1
2
3
4
5
6
7
8
9
	public static void method() throws MyException {
		try {
 
			// Code pouvant renvoyer des IOException / SQLException
 
		} catch (IOException, SQLException : Exception e){
			throw new MyException("erreur method", e);
		}
	}

Tu vas me dire on peut faire ceci :
Code :
1
2
3
4
5
6
7
8
9
	public static void method() throws MyException {
		try {
 
			// Code pouvant renvoyer des IOException / SQLException
 
		} catch (Exception e){
			throw new MyException("erreur method", e);
		}
	}
Oui mais ce n'est pas exactement la même chose : ici tu vas également récupérer toutes les RuntimeExceptions or ce n'est pas forcément voulu car elle représente plus une erreur dans le programme et qu'on aurait voulu les laisser remonter normalement...

En fait actuellement il faudrait faire ceci afin d'ignorer les RuntimeException :
Code :
1
2
3
4
5
6
7
8
9
10
11
	public static void method() throws MyException {
		try {
 
			// Code pouvant renvoyer des IOException / SQLException
 
		} catch (RuntimeException e) {
			throw e; // on remonte les RuntimeExceptions
		}catch (Exception e){
			throw new MyException("erreur method", e);
		}
	}


De même cette solution n'est plus possible si tu as plusieurs types d'exception à gérer différemment :
Code :
1
2
3
4
5
6
7
8
9
		try {
 
			// ...
 
		} catch (SQLException, IOException : Exception e){
			// ... exceptions dû à une ressource inexistante ...
		} catch (IllegalArgumentException, IllegalStateException : Exception e){
			// ... exception dû à une mauvaise utilisation ...
		}

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, 14h19   #23
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:
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
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.
Pour l'exemple que tu donnes c'est en effet la même chose, vu que PrinterAbortException et PrinterIOException sont les 2 seules classes filles de PrinterException.

Par contre dans ce cas:
Code :
catch(ClassCastException, NullPointerException : RuntimeException e){...}
Cela permettrait de catcher les erreurs de classcast et nullpointer mais pas les autres RuntimesException comme les divisions par 0.
Uther est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 15h14   #24
verbose
Membre expérimenté
 
Inscription : juillet 2007
Messages : 729
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 729
Points : 530
Points : 530
Je suis contre, absolument contre. Cette proposition vient pervertir le langage pour une avancée tout à fait mineure. De plus, il est déjà possible de catcher plusieurs type d'exceptions à la fois si elles héritent d'un supertype commun.
verbose est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 15h20   #25
bulbo
Rédacteur
 
Avatar de bulbo
 
Homme
Consultant informatique
Inscription : février 2004
Messages : 1 180
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 40
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : Finance

Informations forums :
Inscription : février 2004
Messages : 1 180
Points : 1 856
Points : 1 856
Citation:
Envoyé par verbose Voir le message
Je suis contre, absolument contre. Cette proposition vient pervertir le langage pour une avancée tout à fait mineure. De plus, il est déjà possible de catcher plusieurs type d'exceptions à la fois si elles héritent d'un supertype commun.
Ca c'est dans le cas ou tu as la main sur tout les types d'exceptions qui peuvent être levées par ton programme.
Au jour d'aujourd'hui vu le nombre d'API sur le marché qui peut dire qu'il maitrise la conception de toutes les classes qu'il utilise ?

Dans l'absolu il y a une avancée, mineure mais il y en a une.

La 'perversion' du langage est vraiment mineure, limitée et facilement lisible (mais ce | brr ) contrairement a bien d'autres proposées ailleurs.

Bulbo
__________________
[Java] [NetBeans] [CVS]
La FAQ Java
Merci de ne pas me poser de questions techniques par MP.
!! J'aurais voulu être une conserve !!
bulbo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 16h06   #26
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 adiGuba Voir le message
Tu vas me dire on peut faire ceci :
Code :
1
2
3
4
5
6
7
8
9
	public static void method() throws MyException {
		try {
 
			// Code pouvant renvoyer des IOException / SQLException
 
		} catch (Exception e){
			throw new MyException("erreur method", e);
		}
	}
Oui mais ce n'est pas exactement la même chose : ici tu vas également récupérer toutes les RuntimeExceptions or ce n'est pas forcément voulu car elle représente plus une erreur dans le programme et qu'on aurait voulu les laisser remonter normalement...

En fait actuellement il faudrait faire ceci afin d'ignorer les RuntimeException :
Code :
1
2
3
4
5
6
7
8
9
10
11
	public static void method() throws MyException {
		try {
 
			// Code pouvant renvoyer des IOException / SQLException
 
		} catch (RuntimeException e) {
			throw e; // on remonte les RuntimeExceptions
		}catch (Exception e){
			throw new MyException("erreur method", e);
		}
	}


De même cette solution n'est plus possible si tu as plusieurs types d'exception à gérer différemment :
Code :
1
2
3
4
5
6
7
8
9
		try {
 
			// ...
 
		} catch (SQLException, IOException : Exception e){
			// ... exceptions dû à une ressource inexistante ...
		} catch (IllegalArgumentException, IllegalStateException : Exception e){
			// ... exception dû à une mauvaise utilisation ...
		}
Merci pour cet exemple qui tient bien la route Je pense que c'est plus parlant comme ça.

Je compatis avec bulbo, car moi aussi dans une grosse appli, je gère plusieurs classes d'exceptions à un niveau différent, et ça demande des catch à rallonge, ce qui est pour moi une grande source de bugs
bobuse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 16h18   #27
Jester
Membre chevronné
 
Avatar de Jester
 
Inscription : septembre 2003
Messages : 735
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 735
Points : 777
Points : 777
Pour mais avec la syntaxe d'Uther.
Jester est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 17h43   #28
le y@m's
Rédacteur/Modérateur
 
Avatar de le y@m's
 
Homme Yann D'Isanto
Ingénieur développement logiciels
Inscription : février 2005
Messages : 2 642
Détails du profil
Informations personnelles :
Nom : Homme Yann D'Isanto
Âge : 30
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : février 2005
Messages : 2 642
Points : 6 157
Points : 6 157
Pour, mais comme déjà dit la syntaxe ne me paraît pas judicieuse.
__________________
Je ne répondrai à aucune question technique par MP.

Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
Enfin, quand une solution a été trouvée à votre problème
pensez au tag

Cours Dvp : http://ydisanto.developpez.com
Blog : http://yann-disanto.blogspot.com/
Page perso : http://yann-disanto.fr
le y@m's est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 17h50   #29
nicorama
Membre Expert
 
Avatar de nicorama
 
Inscription : juillet 2006
Messages : 765
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : juillet 2006
Messages : 765
Points : 1 054
Points : 1 054
Citation:
Envoyé par Uther Voir le message
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){
...
+1
__________________
Robusta Web Library : Clients RESTful open source pour Java, Android & GWT.
API Simple et Productive. Avec style.
nicorama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 19h05   #30
elitost
Rédacteur
 
Avatar de elitost
 
Homme Eric REBOISSON
Consultant informatique
Inscription : septembre 2003
Messages : 2 032
Détails du profil
Informations personnelles :
Nom : Homme Eric REBOISSON
Âge : 35
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2003
Messages : 2 032
Points : 7 357
Points : 7 357
Envoyer un message via ICQ à elitost Envoyer un message via AIM à elitost Envoyer un message via MSN à elitost Envoyer un message via Yahoo à elitost Envoyer un message via Skype™ à elitost
Encore une fois pour les possibilités de raccourcir le code , mais ici une syntaxe à explorer...
elitost est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 19h54   #31
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
Vu sous cet angle, oui mais pourquoi annoncer le parent dans le catch ?

pourquoi annoncer
Code :
catch(MonExcFille1,MonExcFille2 : MonExcMere)
et pas juste les exceptions filles? Je trouve que donner la classe mere ne sert pas à grand chose.

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, 20h08   #32
the-gtm
Membre expérimenté
 
Inscription : juillet 2006
Messages : 548
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 548
Points : 548
Points : 548
Citation:
Envoyé par mavina Voir le message
Vu sous cet angle, oui mais pourquoi annoncer le parent dans le catch ?

pourquoi annoncer
Code :
catch(MonExcFille1,MonExcFille2 : MonExcMere)
et pas juste les exceptions filles? Je trouve que donner la classe mere ne sert pas à grand chose.

F.
Il faut déclarer une classe parente, sinon dans ce code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
catch(MonExcFille1,MonExcFille2 : MonExcMere e) {
  processException(e);
}
 
public void processException(MonExcFille1 e) {
  // ...
}
 
public void processException(MonExcFille2 e) {
  // ...
}
 
public void processException(MonExcMere e) {
  // ...
}
 
public void processException(Exception e) {
  // ...
}
Le compilateur ne saura pas vers quel méthode résoudre processException().
the-gtm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 21h18   #33
Ricky81
Rédacteur
 
Inscription : octobre 2003
Messages : 7 925
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 7 925
Points : 29 324
Points : 29 324
Citation:
Envoyé par OButterlin Voir le message
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...
Le compilateur / IDE prendrait automatiquement la classe commune dans la hiérarchie. Donc pas de cast nécessaire et recours aux méthodes "communes" dans le block catch. Ce qui peut donc expliquer l'absence de la définition de cette classe puisque le compilateur saura la déterminer.

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 :
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.
Et si tu ne veux justement pas catcher l'une des classes filles de PrinterException ?

Citation:
Envoyé par the-gtm Voir le message
Il faut déclarer une classe parente, sinon dans ce code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
catch(MonExcFille1,MonExcFille2 : MonExcMere e) {
  processException(e);
}
 
public void processException(MonExcFille1 e) {
  // ...
}
 
public void processException(MonExcFille2 e) {
  // ...
}
 
public void processException(MonExcMere e) {
  // ...
}
 
public void processException(Exception e) {
  // ...
}
Le compilateur ne saura pas vers quel méthode résoudre processException().
L'appel est résolu au Runtime en fonction de l'exception, donc je ne vois pas ce que le compilateur ferait dans l'histoire si ce n'est vérifier que tous les cas sont couverts.
Ricky81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 21h59   #34
the-gtm
Membre expérimenté
 
Inscription : juillet 2006
Messages : 548
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 548
Points : 548
Points : 548
Je sais pas si c'est résolu au runtime ou à la compilation, mais en tout cas ça la méthode sélectionnée dépend du type déclaré de la variable. cf cet exemple :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class ExceptionTest {
 
	public static void main(String[] args) {
		new ExceptionTest().test();
	}
 
	public void test() {
		MonExcMere e1 = new MonExcFille1();
		processException(e1);
	}
 
	public void processException(MonExcFille1 e) {
		System.out.println("MonExcFille1");
	}
 
	public void processException(MonExcFille2 e) {
		System.out.println("MonExcFille2");
	}
 
	public void processException(MonExcMere e) {
		System.out.println("MonExcMere");
	}
 
	class MonExcFille1 extends MonExcMere {}
	class MonExcFille2 extends MonExcMere {}
	class MonExcMere {}
}
C'est "ExceptionMere" qui est affiché, parce que la variable a été déclarée comme une ExceptionMere
the-gtm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 22h09   #35
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
Citation:
Envoyé par Ricky81 Voir le message
Et si tu ne veux justement pas catcher l'une des classes filles de PrinterException ?
Tu la catch à part avant non ?

Un truc du genre
Code :
1
2
3
4
5
6
7
8
9
10
11
 
try
{
(...)
}catch(PrinterAbortException pae)
{
//je ne fais rien
}catch(PrinterException pe)
{
//je fais
}
passe dans le premier catch lors d'une PrinterAbortException et dans le
second lors du reste non ? J'avoue n'avoir jamais eu ce cas ...

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, 22h21   #36
Ricky81
Rédacteur
 
Inscription : octobre 2003
Messages : 7 925
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 7 925
Points : 29 324
Points : 29 324
Je me suis mal exprimé en parlant de Runtime. Le catch multiple n'est que du sucre syntaxique, c'est comme si on écrivait un bloc catch par exception déclarée, donc le problème que tu évoques ne devrait arriver.

mavina là tu étouffes l'exception, il s'agirait de la propager tout simplement.
Ricky81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 22h59   #37
the-gtm
Membre expérimenté
 
Inscription : juillet 2006
Messages : 548
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 548
Points : 548
Points : 548
Citation:
Envoyé par Ricky81 Voir le message
Je me suis mal exprimé en parlant de Runtime. Le catch multiple n'est que du sucre syntaxique, c'est comme si on écrivait un bloc catch par exception déclarée, donc le problème que tu évoques ne devrait arriver.
Je pense que je vois ce que tu veux dire : en gros c'est équivalent à plusieurs blocs catchs, chacun avec une exception en particulier.

Ca me semble quand même ambigu comme syntaxe. Si on reprend l'exemple

Code :
1
2
3
4
5
6
7
8
9
10
11
catch(MonExcFille1,MonExcFille2 e) {
  processException(e);
}
 
public void processException(MonExcFille1 e) {
	System.out.println("MonExcFille1");
}
 
public void processException(MonExcFille2 e) {
	System.out.println("MonExcFille2");
}
Si dans mon IDE je rentre dans la méthode du bloc catch(F3 avec eclipse), il m'ouvre laquelle?
En gros ça revient à mettre un peu de langage dynamique dans Java. C'est le "un peu de" qui me gène, soit le typage est dynamique soit il est statique, quand "ça dépend", c'est pas terrible
the-gtm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 23h27   #38
bouye
Modérateur
 
Avatar de bouye
 
Homme Fabrice Bouyé
Développeur Java
Inscription : août 2005
Messages : 4 073
Détails du profil
Informations personnelles :
Nom : Homme Fabrice Bouyé
Âge : 36
Localisation : Nouvelle-Calédonie

Informations professionnelles :
Activité : Développeur Java
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : août 2005
Messages : 4 073
Points : 8 524
Points : 8 524
Pour, mais avec une syntaxe differente (des virgules semblent tout indiquees pour le travail).
__________________
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
bouye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 08h58   #39
woodwai
Rédacteur
 
Inscription : juillet 2002
Messages : 346
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : juillet 2002
Messages : 346
Points : 695
Points : 695
Pareil que beaucoup, pour la proposition mais contre la syntaxe (au minimum utiliser une virgule), la possibilité offerte de définir le type de l'exception passée au bloc catch permet aussi de ne pas devoir faire de 'instance of' pour déterminer le typage de l'exception dans le bloc catch si nécessaire.

Donc, +1 pour la syntaxe de Uther.
__________________
Venez visiter mon site sur developpez ou mon blog perso
woodwai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 09h00   #40
benwit
Rédacteur
 
Avatar de benwit
 
Inscription : septembre 2004
Messages : 1 628
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 1 628
Points : 3 094
Points : 3 094
Citation:
Envoyé par Uther Voir le message
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 (Exception e : InstantiationException, IllegalAccessException){
...
+2

Edité pour modif de syntaxe (cf ci dessous)
benwit 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 14h10.


 
 
 
 
Partenaires

Hébergement Web