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 :

Déclencher une exception et arreter l'execution du programme


Sujet :

Langage Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 117
    Points : 64
    Points
    64
    Par défaut Déclencher une exception et arreter l'execution du programme
    Bonjour,

    j'ai une question relativement simple et je ne suis pas sûr d'utiliser la bonne méthode pour parvenir à mes fins : après un test, je souhaite lever une exception et arrêter l'exécution de mon programme. Pour le moment, j'implémentais Throwable dans ma méthode et je levais l'exception avec throw new Exception puis je faisais un System.exit(0) pour arrêter le programme. Après recherches sur le forum, le System.exit semble un peu trop brutal mais je ne sais pas comment faire du coup pour empécher l'execution du programme.

    Merci pour votre aide.

  2. #2
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    Citation Envoyé par Zanton
    Bonjour,

    j'ai une question relativement simple et je ne suis pas sûr d'utiliser la bonne méthode pour parvenir à mes fins : après un test, je souhaite lever une exception et arrêter l'exécution de mon programme. Pour le moment, j'implémentais Throwable dans ma méthode et je levais l'exception avec throw new Exception puis je faisais un System.exit(0) pour arrêter le programme. Après recherches sur le forum, le System.exit semble un peu trop brutal mais je ne sais pas comment faire du coup pour empécher l'execution du programme.

    Merci pour votre aide.
    Bonjour,

    Le principe des exceptions, c'est que c'est le boulot de l'appelant de gérer les exceptions levées par les méthodes appelées.
    Donc une méthode ne devrait pas faire de System.exit() pour cause d'erreur. Tu ne peux pas savoir, dans ta méthode, si l'appelant n'a pas quelque chose à faire avant de quitter, ou peut-être qu'il peut corriger le problème et retenter d'appeler la méthode fautive...
    [alkama] quelqu'un est allé voir la guerre des mondes?
    [@Chrisman] j'espère pour spielberg
    --- bashfr.org

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 117
    Points : 64
    Points
    64
    Par défaut
    Dans mon cas, la méthode est une méthode de validation : si l'information est mauvaise, le programme doit s'arrêter, si elle est bonne, il ne fait rien. Je pensais donc utiliser une méthode pour vérifier si c'était le cas et lever une erreur en conséquence. Du coup, je ne saisis pas très bien quelle moyen tu préconises pour que je stoppe le programme si la validation échoue.

  4. #4
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    Citation Envoyé par Zanton
    Dans mon cas, la méthode est une méthode de validation : si l'information est mauvaise, le programme doit s'arrêter, si elle est bonne, il ne fait rien. Je pensais donc utiliser une méthode pour vérifier si c'était le cas et lever une erreur en conséquence. Du coup, je ne saisis pas très bien quelle moyen tu préconises pour que je stoppe le programme si la validation échoue.
    Ta méthode de validation lève l'exception, qui est transmise à l'appelant (le main() si la méthode est appelée directement).
    A charge à cet appelant de traiter l'exception dans le bloc try...catch, soit en levant à son tour une exception, soit en faisant un System.exit().
    Là, c'est à toi de voir. Mais a priori, une méthode de validation ne doit pas arrêter un programme, seulement renvoyer OK ou KO. C'est à celui qui voulait valider l'info de décider si le programme peut continuer ou pas.
    [alkama] quelqu'un est allé voir la guerre des mondes?
    [@Chrisman] j'espère pour spielberg
    --- bashfr.org

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 117
    Points : 64
    Points
    64
    Par défaut
    Oui je suis d'accord sur ce principe, ma question porte essentiellement sur le moyen d'arrêter le programme : System.exit n'est-il pas trop brutal pour le faire (je n'ai trouvé que ça en cherchant rapidement) ?

  6. #6
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    Citation Envoyé par Zanton
    Oui je suis d'accord sur ce principe, ma question porte essentiellement sur le moyen d'arrêter le programme : System.exit n'est-il pas trop brutal pour le faire (je n'ai trouvé que ça en cherchant rapidement) ?
    Ah, ok. Je crois que tu n'as pas le choix si tu veux arrêter le programme directement.
    [alkama] quelqu'un est allé voir la guerre des mondes?
    [@Chrisman] j'espère pour spielberg
    --- bashfr.org

  7. #7
    Membre confirmé Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Points : 552
    Points
    552
    Par défaut
    Tu crées ta propre classe d'Exception, style ValidationException qui étend la classe Exception, et puis ton code dois ressembler à ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try {
    	...
    	throw new ValidationException("Ca a merdé.");
    	S.o.p("Validation OK");
    }
    catch (ValidationException vEx) { 
    	S.o.p(vEx);
    	System.exit(0);
    }

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 117
    Points : 64
    Points
    64
    Par défaut
    Ok, ça marche

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

Discussions similaires

  1. remplacer un jpanel par une autre au cours d'execution du programme
    Par switch1 dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 10/02/2009, 13h31
  2. Comment déclencher une exception par du code
    Par visiwi dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 09/06/2008, 18h06
  3. Une exception lors de l'execution de la jsp
    Par Quays dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 13/04/2007, 10h52
  4. Réponses: 4
    Dernier message: 22/11/2006, 17h14
  5. Arreter l'execution d'une requete ?
    Par Olv_m dans le forum ASP
    Réponses: 2
    Dernier message: 13/10/2005, 22h57

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