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

Java Discussion :

Gestion d'une exception


Sujet :

Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Points : 18
    Points
    18
    Par défaut Gestion d'une exception
    Bonsoir,

    je dois remettre un travaille et je dois y insérer une exception. Voici un morceau de mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class Essai{
         private aa;
         private bb;
         //constructeur
         public Essai (int a,int b){
               //ici je dois insérer une exception.
         }
        //suite du code
    }
    Voila alors je dois mettre dans la variable aa la valeur de a (en parametre du constructeur) et dans bb la valeur de b.
    Si a ou b est inferieur à 0, je dois lancer une exception de type "IllegalSize".

    Je pensais le faire comme suit mais ca ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class Essai{
         private aa;
         private bb;
         //constructeur
         public Essai (int a,int b) throws ErrConst{
               if (a<0) throw new ErrConst();
               if (b<0) throw new ErrConst();
     
        }
        //suite du code
    }
    Je dois donc creer une nouvelle classe que je nome ErrConst et dans cette classe créer un nouveau constructeur : public ErrConst(int a,int b) et mettre un try and catch dans cette nouvelle classe? Je suis un peu perdu


    MERCI

  2. #2
    Membre actif Avatar de @ldehan
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 215
    Points : 278
    Points
    278
    Par défaut
    pour creer ta classe d'exception tu as juste a hériter d'une des 2 classes d'exception :
    java.lang.Exception ou java.lang.RuntimeException

    genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class IllegalSizeException extends Exception
    apres dans ton code tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public Essai (int a,int b) throws IllegalSizeException{
               if (a<0 || b<0) throw new IllegalSizeException();         
        }
    je te conseille quand même un petit tour là :
    http://java.developpez.com/faq/java/?page=exception

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Merci pour la réponse

    Donc je crée une nouvelle classe IllegalSizeException.

    Et dans cette classe je dois mettre un try/catch ?


    Merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Salut,
    Tu n'as pas de try catch a mettre dans le contructeur del'exception

  5. #5
    Membre actif Avatar de @ldehan
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 215
    Points : 278
    Points
    278
    Par défaut
    le try catch tu le met la ou tu fais appel a ton constructeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try{
        Essai essai = new Essai(-1, 5);
    }catch(IllegalSiezException e){
        e.printStackTrace();
    }
    garde egalement a l'esprit que la plupart du temps tu n'es pas obligé de créer tes exception mais que tu as tout interet a réutilisé les exceptions existantes.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Salut, c'est un travail que je dois faire pour l'école et on demande d'insérer une exception IllegalSizeException dans le cas précisé..

    Dans la classe IllegalSizeException, je dois uniquement mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    public class IllegalSizeException extends Exception {}
    Je ne dois rien mettre entre les {}?

    Je dois mettre le "public" devant class?

    Merci

  7. #7
    Membre actif Avatar de @ldehan
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 215
    Points : 278
    Points
    278
    Par défaut
    je pense qu'u petit tutoriel java et un petit tour dasn la faq te feront le plus grand bien

    pour ton exception, ce serait pas mal de surcharger les constructeurs de java.lang.Exception

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Salut, j'ai regardé la faq et j'ai aussi un livre ou cela est expliqué mais je n'y comprend pas tout

    Donc, si j'ai bien compris dans ma classe IllegaleSizeException je dois juste mettre la ligne : public class IllegalSizeException extends Exception {}

    Et si je fais appelle a mon constructeur POSITION dans une autre méthode, dans ce cas la je dois employer des try and catch, c'est bien cela?

    Merci

  9. #9
    Membre actif Avatar de @ldehan
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 215
    Points : 278
    Points
    278
    Par défaut
    oui oui c'est ca.

    mais si tu veux améliorer ton exception, en general on surcharge les constructeurs pour prendre différentes infos en parametres et aussi renvoyer des messages .

  10. #10
    raj
    raj est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 112
    Points : 100
    Points
    100
    Par défaut
    pour faire plus propre :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    public class IllegalSizeException extends Exception
    {
     
    public IllegalSizeException(String message){
    super(message);
    }
     
     
    }
    Prends déja de bonnes habitude !

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Re, en fait l'exception est de type IllegalArgumentException.
    X et y doivent etre compris entre 0 et 4.

    J'ai donc mon constructeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public Constructeur (int x,int y) throws IllegalArgumentException{
    	if (x>4 || y<0 || y>4 || x<0) 
    		throw new IllegalArgumentException("Erreur de construction");
     
    		this.x=x;//les variables x et y sont déclarées plus haut
    		this.y=y;
     
    }
    Ma classe exception:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class IllegalArgumentException extends Exception{
     
    	public IllegalArgumentException(String message){
    		super(message);
    	}
    }
    Et alors, j'ai une classe test, que je ne peux modifier pour tester que mon constructeur fonctionne bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public void testConstructeur(){
    		assertTrue(new Constructeur(1,3) != null);
    		try{
    			new Constructeur(0,6);
    			fail();
    		}catch(IllegalArgumentException e){		
    		}
    		try{
    			new Constructeur(-1,1);
    			fail();
    		}catch(IllegalArgumentException e){		
    		}
    }
    Voila, donc, la compilation de la classe avec le constructeur fonctionne, la compilation de la classe IllegalArgumentException fonctionne aussi..
    Par contre, la compilation de la classe de test de fonctionne pas.. (c'est du JUNIT).

    Ca coince à chaque new Constructeur..


    Merci d'avance

  12. #12
    Membre actif Avatar de @ldehan
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 215
    Points : 278
    Points
    278
    Par défaut
    c'est quoi le probleme de compilation ? tu as bien un message ?

    sinon la classe IllegalArgumentException tu n'as pas à la réécrire elle existe déjà : java.lang.IllegalArgumentException

    http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html


    et pourquoi tu as un new Constructeur en dehors d'un try catch ?

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    J'édite mon message pour vous dire que ca a fonctionné..

    En fait, j'ai donc supprimer ma classe IllegalArgumentException.java.

    Et dans la classe ou se trouve le constructeur, j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    import java.lang.IllegalArgumentException;
    J'ai recompilé et ca fonctionne, c'est correcte selon vous?

    Merci

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

Discussions similaires

  1. [Débutant] Gestion de plusieurs exceptions dans une sub
    Par Attila54 dans le forum VB.NET
    Réponses: 14
    Dernier message: 17/08/2013, 19h29
  2. Réponses: 11
    Dernier message: 04/10/2012, 09h34
  3. Réponses: 1
    Dernier message: 18/12/2009, 20h01
  4. Design : gestion d'une exception
    Par Le Grand Habchkleu dans le forum Windows Forms
    Réponses: 14
    Dernier message: 30/11/2009, 20h22
  5. Réponses: 3
    Dernier message: 01/11/2002, 14h30

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