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

avec Java Discussion :

le monde des exceptions Java


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Ingénieur d'études et développement JAVA
    Inscrit en
    Mai 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études et développement JAVA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 202
    Par défaut le monde des exceptions Java
    Bonjour tous le monde,

    Je me pose pas mal de questions concernant les exceptions, voilà quelle-que une:
    A)Qu'est ce qu'une Cheked exception et uncheked exception, et s'il y a un autre type?
    B)Qu'elle est la différence entre error et runtime exception?
    C)Qu'elle la différence entre les approches pour catcher une exception:
    1-try/catch;
    2-utiliser throws;
    D)Si on écrit un System.exit(0) à la fin du bloque catch, est ce que la clause finally serra exécuter?
    E)Comment identifier la source d'erreur dans un log? est ce que on se referont à caused by?
    F)Comment créer ca propre classe d'exception?
    Pour le moment, c'est ce qui me vient à l'esprit.

    Merci de votre aide précieuse.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    A) la première est une exception que t'es obligé de traiter explicitement, la deuxième peux être traitée explicitement mais a un traitement implicite.

    B) un error montre un problème grave de l'environnement, il n'est en général pas bon de traiter ces exceptions, mieux vaut laisser la jvm ou le thread mourir. Le seul traitement raisonnable à envisager dans un catch serait l'arrêt de l'application.

    C) try / catch = prendre en compte l'exception pour effectuer un traitement particulier dans ce cas. throws = déléguer ce problème à l'appelant.

    D) non, la JVM s'interrompt immédiatement, on déroule pas la pile. Seuls les shutdown hooks sont exécutés

    E) La première ligne du stacktrace est l'endroit où s'est déclenchée l'exception. A partir de là tout dépend de l'exception bien sur

    F) comme n'importe quel objet, en étendant une classe exception existante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class MonException extends RuntimeException {
     // exception perso non checkée
     public MonException(){
        super("Houlala, ça se passe mal");
     }
    }

  3. #3
    Membre éclairé
    Profil pro
    Ingénieur d'études et développement JAVA
    Inscrit en
    Mai 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études et développement JAVA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 202
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    A) la deuxième peux être traitée explicitement mais a un traitement implicite.

    B) un error montre un problème grave de l'environnement, il n'est en général pas bon de traiter ces exceptions, mieux vaut laisser la jvm ou le thread mourir. Le seul traitement raisonnable à envisager dans un catch serait l'arrêt de l'application.

    C) try / catch = prendre en compte l'exception pour effectuer un traitement particulier dans ce cas. throws = déléguer ce problème à l'appelant.

    D) non, la JVM s'interrompt immédiatement, on déroule pas la pile. Seuls les shutdown hooks sont exécutés

    E) La première ligne du stacktrace est l'endroit où s'est déclenchée l'exception. A partir de là tout dépend de l'exception bien sur

    F) comme n'importe quel objet, en étendant une classe exception existante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class MonException extends RuntimeException {
     // exception perso non checkée
     public MonException(){
        super("Houlala, ça se passe mal");
     }
    }
    Merci pour tes réponses: cependant, j'ai pas tous compris ,

    B)Comment on peux catcher une Error Exception?
    C)je ne suis pas sûr de bien comprendre ce que tu veux dire avec throws = déléguer ce problème à l'appelant, un exemple serait plus parlant.
    D) c'est quoi un "shutdown hooks"
    E) A quoi sert caused by dans un stack trace?

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    une Error, pas une "Error Exception". On catch un error de la même manière qu'une exception

    une error est un problème grave, une RuntimeException ne l'est pas nécessairement, il est donc raisonnable de la catcher au bon endroit pour la traiter. En général on n'en fait rien car on ne sait pas quoi en faire

    quand tu met throws, tu indique au compilateur que ta méthode peux faire remonter une exception. Du coup l'appelant doit la gérer (soit en faisant lui même un throws, soit en faisant un try catch). Bref tu dit mon code peux lancer une exception, mais j'ai pas envie de la traiter.

    le caused by sert à chainer les exceptions pour en connaitre la cause.

    Par exemple, tu pourrais imaginer une Exception de type AuthentcationException, qui te dit que l'utilisateur n'a pas pu être authentifié, qui serait "caused by" un NamingException te disant qu'on ne peux pas accéder à un serveur LDAP qui serait cause by une NetworkException qui te dirait "host unknown". du coup tu saurais qu'on est pas arrivé à l'autentifier parce que le jndi ne marche par parce que le serveur sur lequel il point n'existe pas

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

Discussions similaires

  1. Gestion des erreurs (type Exception java) sur un tMap
    Par gavelin dans le forum Développement de jobs
    Réponses: 5
    Dernier message: 31/01/2011, 10h25
  2. Particulairité des exceptions en JAVA
    Par laurent_m dans le forum Langage
    Réponses: 7
    Dernier message: 26/04/2007, 20h38

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