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

Langage Java Discussion :

Particulairité des exceptions en JAVA


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    SAQ
    Inscrit en
    Novembre 2005
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : SAQ
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2005
    Messages : 167
    Par défaut Particulairité des exceptions en JAVA
    Salut,
    Je me posais une question dont je crois avoir la réponse, je veux juste partager ma réflexion avec vous :

    Supposons que j'ai une classe d'exception de cette forme:
    Code java : 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
     
    //Attributs de classe
    public class MonException extends Exception{
    private String mMessage=null;
    ...
     
    //Contructeurs
    ...
    public MonException(String pMessage,boolean pPrintStack) 
    mMessage=pMessage;
    if(pPrintStack)printStackTrace();
    }
     
    }
     
    //Classe lançant l'exception
    public class unObjet{
    private int i=0;
    private int j=-1;
     
    public void uneMethode()throws MonException{
    if(i!=j)throw new MonException("i et j non-égaux",true);
    }
    }
    Selon vous, est-ce que la trace va être affiché au moment où l'exception est lancée ou lorsqu'on la trappe dans un bloc try/catch ?

    Selon moi, la deuxième option demeure la plus plausible, j'en suis pas à 100% sûr cependant

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 118
    Par défaut
    Salut, Voila ce que je pense :

    L'erreur sera affichée (si tu souhaite l'afficher bien sur) dans le try catch :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    try{
    ..
    }
    catch (TonExeption e){
    System.err.println(e.getMessage()) ;
    }
    Par contre, il est possible de ne jamais utiliser de try catch (mettre toujours throws dans l'entete des méthodes, et ce jusqu'au "main" OU si ta classe d'exception étend la classe RuntimeException).
    Dans ce cas, la trace est affichée automatiquement au moment de l'exception.

  3. #3
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    @alex'l : euh, je vois pas le rapport entre la question et ta réponse ....

    @laurent_m : la trace va être affichée au moment où l'exception est créée, donc avant d'être lancée et bien sûr catchée
    Ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    throw new MonException("i et j non-égaux",true);
    est équivalent (en termes de "résultat") à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Exception e = new MonException("i et j non-égaux",true);
    throw e;
    où là tu as la réponse de manière plus évidente ....

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 118
    Par défaut
    Citation Envoyé par chtig
    @alex'l : euh, je vois pas le rapport entre la question et ta réponse ....
    C'est vrai... je ne me suis pas attardé sur le code. Si un modérateur peut supprimer mes messages... désolé!

  5. #5
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Ya pas de souci ça arrive à tout le monde ! Moi le premier

  6. #6
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Elle est bizarre ta classe d'exception...
    Plus simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class MonException throws Exception {
        public MonException() {}
        public MonException(String message) {
            super(message);
        }
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. le monde des exceptions Java
    Par naou18 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 08/02/2012, 18h05
  2. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11

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