IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Affichage des résultats du sondage: Êtes-vous pour ou contre cette proposition ?

Votants
385. Vous ne pouvez pas participer à ce sondage.
  • Pour

    334 86,75%
  • Contre

    51 13,25%
Langage Java Discussion :

JDK 7: Proposition 7 : Pouvoir catcher plusieurs exceptions en une fois [Débat]


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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++

  2. #2
    Membre expérimenté
    Avatar de bobuse
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 232
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Tu vas me dire on peut faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 785
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    catch (PrinterAbortException, PrinterIOException : PrinterException e){
    }
    est la même chose que de catcher dirrectement l'ancetre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  4. #4
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Par défaut
    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.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Par défaut
    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.

  6. #6
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Par défaut
    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.

  7. #7
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 636
    Par défaut
    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 :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  8. #8
    Membre Expert
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Moselle (Lorraine)

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Par défaut
    Encore une fois pour les possibilités de raccourcir le code , mais ici une syntaxe à explorer...

  9. #9
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Chine

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Vu sous cet angle, oui mais pourquoi annoncer le parent dans le catch ?

    pourquoi annoncer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    catch(MonExcFille1,MonExcFille2 : MonExcMere)
    et pas juste les exceptions filles? Je trouve que donner la classe mere ne sert pas à grand chose.

    F.

  10. #10
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par défaut
    Citation Envoyé par mavina Voir le message
    Vu sous cet angle, oui mais pourquoi annoncer le parent dans le catch ?

    pourquoi annoncer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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().

  11. #11
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    catch (PrinterAbortException, PrinterIOException : PrinterException e){
    }
    est la même chose que de catcher dirrectement l'ancetre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  12. #12
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  13. #13
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Chine

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  14. #14
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    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

  15. #15
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Citation Envoyé par djo.mos Voir le message
    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
    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.

  16. #16
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 785
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class MaClasse implements Serializable & Clonable & Comparable {
        public void maFonction() throws IOException | NullPointerException{
            ...
        }
    }

  17. #17
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Par défaut
    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.

  18. #18
    Membre confirmé Avatar de ludosoft
    Homme Profil pro
    Chef de projet technique
    Inscrit en
    Juillet 2002
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2002
    Messages : 99
    Par défaut
    Pour, mais en changeant "|" pas une ",".

  19. #19
    Invité de passage

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Par défaut
    Pour. J'attends ça depuis longtemps.

  20. #20
    Membre actif Avatar de DrHelmut
    Homme Profil pro
    Software craftsman - JS, Java...
    Inscrit en
    Octobre 2005
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Software craftsman - JS, Java...
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 118
    Par défaut
    Soit j'ai mal compris la proposition, soit je ne comprends pas l'utilité...

    pour catcher plusieurs exceptions d'un coup, il y a l'héritage !

Discussions similaires

  1. [Débutant] Gestion de plusieurs exceptions dans une sub
    Par Attila54 dans le forum VB.NET
    Réponses: 14
    Dernier message: 17/08/2013, 19h29
  2. [FPDF] Générer plusieurs PDF en une fois
    Par mdr_cedrick dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 02/04/2009, 16h22
  3. [MySQL] plusieurs requetes en une fois
    Par maximenet dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 31/07/2006, 11h57
  4. [MFC] Checker plusieurs bouton en une fois
    Par kacedda dans le forum MFC
    Réponses: 2
    Dernier message: 08/03/2006, 17h10
  5. Réponses: 13
    Dernier message: 21/12/2005, 12h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo