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 :

Erreur dans un try catch


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 36
    Points : 28
    Points
    28
    Par défaut Erreur dans un try catch
    Bonjour, je debute avec les classes et les exceptions,j'ai fait un petit programme tout bête, j'ai une erreur à la compilation que je ne comprends pas:try without catch or finally. Merci de m'expliquer

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    class Compte{	
    	int solde;
    	String titulaire;
    	int numero;
    	int decouvertAutorise;
    	void afficher(){
    		Terminal.ecrireString("solde:"+ this.solde);
    		Terminal.sautDeLigne();
    	}
    	void deposer(int montant)throws MontantNeg{
    		if(montant<0)
    			throw new MontantNeg();
    		solde=solde+montant;
    	}
    	void retirer(int montant)throws MontantNeg,Decouvert{
    		if(montant<0)
    			throw new MontantNeg();
    		if(montant>solde+decouvertAutorise)
    			throw new Decouvert();
    		solde+=montant;			
    	}
    }
    class MontantNeg extends Exception{}
    class Decouvert extends Exception{}
    class Essai_1_Compte{
    	public static void main(String[]args){
    		Compte c1= new Compte();
    		Compte c2 =new Compte();
    		c1.solde=100;
    		c1.decouvertAutorise=100;
    		try{
    			Terminal.ecrireString("saisir le montant à deposer :");
    			c1.deposer(Terminal.lireInt());
    		}
    		try{
    			Terminal.ecrireString("saisir le montant à retirer :");
    			c1.retirer(Terminal.lireInt());
    		}
    		catch(MontantNeg e){
    			Terminal.ecrireStringln("le montant est neg");
    		}
    		catch(Decouvert e){
    			Terminal.ecrireStringln("decouvert interdit, retrait impossible");
    		}
    		c1.afficher();
    	}
    }

  2. #2
    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
    Points : 653
    Points
    653
    Par défaut
    Il n'est pas possible de faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    try{
    	Terminal.ecrireString("saisir le montant à deposer :");
    	c1.deposer(Terminal.lireInt());
    }
    try{
    	Terminal.ecrireString("saisir le montant à retirer :");
    	c1.retirer(Terminal.lireInt());
    }
    Un bloc try doit être immédiatement suivi d'un bloc catch ou finally.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 36
    Points : 28
    Points
    28
    Par défaut
    Bonsoir,
    j'ai rapprocher le catch du try correspondant mais j'ai un autre message d'erreur "unreported exception MontantNeg; must be caught or declared to be thrown
    Je ne vois pas ce qui cloche....Merci de jeter un coup d'oeil
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    class Compte{	
    	int solde;
    	String titulaire;
    	int numero;
    	int decouvertAutorise;
    	void afficher(){
    		Terminal.ecrireString("solde:"+ this.solde);
    		Terminal.sautDeLigne();
    	}
    	void deposer(int montant)throws MontantNeg{
    		if(montant<0)
    			throw new MontantNeg();
    		solde=solde+montant;
    	}
    	void retirer(int montant)throws MontantNeg,Decouvert{
    		if(montant<0)
    			throw new MontantNeg();
    		if(montant>solde+decouvertAutorise)
    			throw new Decouvert();
    		solde+=montant;			
    	}
    }
    class MontantNeg extends Exception{}
    class Decouvert extends Exception{}
    class Essai_CompteCorrec3{
    	public static void main(String[]args){
    		Compte c1= new Compte();
    		Compte c2 =new Compte();
    		c1.solde=100;
    		c1.decouvertAutorise=100;
    		try{
    			Terminal.ecrireString("saisir le montant à deposer :");
    			c1.deposer(Terminal.lireInt());
    		}
    		catch(MontantNeg e){
    			Terminal.ecrireStringln("le montant est neg");
    		}
    		try{
    			Terminal.ecrireString("saisir le montant à retirer :");
    			c1.retirer(Terminal.lireInt());
    		}
    		catch(Decouvert e){
    			Terminal.ecrireStringln("decouvert interdit, retrait impossible");
    		}
    		c1.afficher();
    	}
    }

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Le message est pourtant clair.

    Dans ton deuxième bloc try, la méthode retirer() pourrait lancer une exception MontantNeg.
    Pourtant cette exception n'est pas catchée, et la méthode main() n'annonce pas qu'elle peut lancer cette exception. Autrement dit cette exception peut arriver et le programme ne dit pas quoi en faire, d'où erreur de compilation.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Repercution d'erreur dans un try/catch
    Par Stefounette dans le forum JavaFX
    Réponses: 4
    Dernier message: 31/05/2010, 12h32
  2. Gestion des erreurs avec le try catch
    Par shaun_the_sheep dans le forum Général Java
    Réponses: 8
    Dernier message: 03/03/2010, 10h22
  3. Code erreur d'un Try, Catch (exception e)
    Par davelop dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 06/10/2008, 19h00
  4. Erreur, même dans un try-catch
    Par TheCool dans le forum C#
    Réponses: 3
    Dernier message: 06/03/2008, 19h26
  5. Réponses: 3
    Dernier message: 12/12/2006, 18h58

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