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 :

Comment placer un try catch ?


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 63
    Points : 30
    Points
    30
    Par défaut Comment placer un try catch ?
    bonjour
    dans le code suivant une erreur est levée,
    cependant je voudrais placé un try/catch pour eviter de sortir du programme mais je ne sais pas à quel ligne l'insérer, ensuite après le catch je réinsèrerais un méthode qui me remettra au menu (ça je l'ai).


    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
     
        Terminal.ecrireStringln("Quelle image voulez vous utiliser pour le fond");
        int dest=Terminal.lireInt();
        ElementListe tmp = l.getPremier();
        int i=1;
        while(tmp!=null && i<dest){
           tmp=tmp.getSuivant();
           i++;
        }
        if (tmp == null)   // j'ai l'élément recherché
    	throw new Error("element inexistant");	
        t=tmp.getValeur().getTableau();
        iec=new ImageExterneCree(t);
     //iec.sauver(nomFond);
        maListe.add(iec);
    }

  2. #2
    Membre averti Avatar de ZnhaarX
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

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

    Informations forums :
    Inscription : Février 2011
    Messages : 146
    Points : 307
    Points
    307
    Par défaut
    Salut,

    Les balises codes n'auraient pas été de trop pour la lisibilité hein

    Généralement, tu déclares tes variables, et tu mets ton try sur les traitements pouvant amener une exception.

    Ici il faut que tu t'arranges pour mettre ton throw new Error(); dans ton try. Ça te donnerait quelque chose du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    		try{
    			if(tmp == null)
    				throw new Error();
    		}catch(Error e){
    			System.out.println("Element inexistant");
    		}finally{
    			/**
                             * Ce que tu veux toujours exécuter, généralement utilisé pour 
                             * libérer la mémoire
                             */
    		}

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 63
    Points : 30
    Points
    30
    Par défaut
    re,
    merci
    donc je l'ai placé comme tu as dis mais cela me fait tout de même sortir du programme, ce que voudrais c'est que ça ne l'arrête pas.


    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
    ...{
    Terminal.ecrireStringln("Quelle image voulez vous utiliser pour le fond");
    				dest=Terminal.lireInt();
    				ElementListe tmp = l.getPremier();
    				int i=1;
    				while(tmp!=null && i<dest){
    					tmp=tmp.getSuivant();
    					i++;
    					}
    				try{
    					if (tmp == null)   // j'ai l'élément recherché
    						throw new Stop();
    				}catch(Stop e){
    					Terminal.ecrireString("Element Inexistant");
    				}
    				t=tmp.getValeur().getTableau();
    				iec=new ImageExterneCree(t);
    					 //iec.sauver(nomFond);
    				maListe.add(iec);
    }
    class Stop extends RuntimeException{}

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Points : 92
    Points
    92
    Par défaut Comment placer un try catch ?
    slt avant je tiens à te rappelle que un try/catch n'empeche l'execution d'une erreur ou exception survenus dans ton programme mais tout simple de l'anticipe et prevoir le traitement à faire au cas où.
    si le blocque try/catch te fait sortis tu programme c'est dus à l'erreur stop que tu leve dans try avec et que tu ne traite pas dans le catch.ainsi pourquoi leve tu cette erreur et que prevois tu de faire au cas où elle sera leve c'est celà que tu de doit de mettre dans ton catch pour ne plus sortir de ton programme.
    bye j'espere avoir pus d'aide.
    a++

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 63
    Points : 30
    Points
    30
    Par défaut
    Re bonjour,
    pareil dans ce code, je n'arrive pas à placer le try{ / }catch{...}


    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
    static int menu()throws FileNotFoundException{
    		int choix;
    		Terminal.ecrireStringln("----------------------------");
    		Terminal.ecrireStringln("Choisissez une operation : ");
    		Terminal.ecrireStringln("1.  Ouvrir une image");
    		Terminal.ecrireStringln("2.  Creation d'une nouvelle image");
    		Terminal.ecrireStringln("3.  Incruster une image");
    		Terminal.ecrireStringln("4.  Fermer une image");
    		Terminal.ecrireStringln("5.  Sauver une image creee");
    		Terminal.ecrireStringln("6.  Inverser une image");
    		Terminal.ecrireStringln("0.  Quitter le programme");
    		Terminal.ecrireStringln("============================");
    		try{
    			Terminal.ecrireStringln("Entrez votre choix :  ");
    			choix=Terminal.lireInt();
    			if(choix<0 || choix>6){
    				Terminal.ecrireStringln("Ce choix n'existe pas.");
    			}
     
    		}catch(FileNotFoundException e){
    			Terminal.ecrireStringln("Ce choix n'esxiste pas");
    		}
    		return choix;	
    	}
    ça me dit que la méthode doit retourner un int...

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 621
    Points
    21 621
    Par défaut
    De toute façon, tu ne peux pas avoir de FileNotFoundException ici. Il ne sert à rien, ton try / catch.

    Si tu veux gérer une entrée erronée, tu devrais simplement mettre le choix à faire dans une boucle. Si l'entrée est correcte, tu fais un return (ce qui quitte la méthode, et donc, la boucle,) sinon tu affiches un message d'erreur et tu laisses la boucle se refaire.

  7. #7
    Membre régulier Avatar de Tora21
    Homme Profil pro
    Développeur("Java"); //Débutant
    Inscrit en
    Mai 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur("Java"); //Débutant

    Informations forums :
    Inscription : Mai 2011
    Messages : 140
    Points : 116
    Points
    116
    Par défaut
    Oui ou sinon selon le programme que tu te sert pour faire ton soft, tu va dans source, et "surrond with try/catch", et il te mettra directement le try et le cache avec l'erreur qui convient, libre a toi de changer le traitement que devra faire l'erreur, son nom etc...

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 63
    Points : 30
    Points
    30
    Par défaut
    Merci.
    c'est pas génial mais pour ce cas là ça tourne.
    Quand c'est en fin de boucle ça ne pose pas trop de problème.
    L'erreur est levée et la boucle redémarre.
    Mais quand il me reste du code derrière, soit ça fait tout le code pour rien si je l'inclue dans le try, soit ça bug car l'erreur est levé mais je ne sais pas comment indiqué qu'il faut revenir au début de la boucle.
    En tout cas merci beaucoup.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/06/2015, 17h20
  2. [Informations] Comment fonctionne le Try - Catch
    Par Caxton dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 20/06/2010, 22h01
  3. comment fonctionne les "try-catch" en pgsql
    Par charlie_p07 dans le forum PostgreSQL
    Réponses: 0
    Dernier message: 13/03/2008, 17h57
  4. Réponses: 4
    Dernier message: 31/10/2005, 14h42

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