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 :

comment savoir que dans une methode il ya des exception


Sujet :

Langage Java

  1. #1
    Nouveau candidat au Club
    Inscrit en
    Octobre 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 1
    Par défaut comment savoir que dans une methode il ya des exception
    comment savoir que dans une methode il ya des exception

  2. #2
    Membre émérite
    Avatar de efficks
    Inscrit en
    Septembre 2005
    Messages
    712
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 712
    Par défaut
    Tu fouilles pour ta méthode dans les spécifications de l'API Java.
    Voici l'adresse pour les spécification selon ta version de java :
    http://java.sun.com/reference/api/index.html

    Tu n'as qu'à choisir ta version.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2003
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 141
    Par défaut
    dans l'api quand il y a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    methode () throws *Exception
    voila pas plus compliqué ... et la tu doit faire un try.. catch pour recuperer l'exception

  4. #4
    Membre confirmé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2005
    Messages : 29
    Par défaut
    Si tu veux savoir en cours d'execution si une methode possède des exceptions (méthode déclarée comme : methode () throws *Exception)il te faut aller voir du coté de la classe java.lang.reflect.Method

    il y a une methode getExceptionTypes() qui renvoie un tableau vide de classes si ta methode ne possède pas d'exception.

    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
     
    Object o;//ton objet
    Class c = o.getClass(); //la classe de ton objet
    Method mArray[] = c.getDeclaredMethods();//toutes les methodes de ta classe
    for(int i=0;i<mArray.length;i++) {
        Method m = mArray[i];
        Class eClass [] = m.getExceptionTypes();
        if(eClass.length != 0) {
            System.out.println("La methode "+m.getName()+" possède les exceptions suivantes :");
            for(int j=0;j<eClass.length;j++)  {
                Class exceptClass = eClass[j];
                System.out.println(exceptClass.getName());
            }
        }
    }
    C.

  5. #5
    Membre émérite
    Avatar de efficks
    Inscrit en
    Septembre 2005
    Messages
    712
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 712
    Par défaut
    Le meilleur moyen est d'aller voir comme je disais les spécifications de l'API Java.

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 220
    Par défaut
    Et puis tu as la methode bourrin, quand ca plante à la compilation !

  7. #7
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Citation Envoyé par ghorgor
    Et puis tu as la methode bourrin, quand ca plante à la compilation !
    Ah !! J'allais le dire !! Ca a le mérite d'être directe et simple, comme méthode.

  8. #8
    Membre émérite
    Avatar de efficks
    Inscrit en
    Septembre 2005
    Messages
    712
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 712
    Par défaut
    Quelle belle méthode vous démontrez ici. C'est avec ces méthodes là que la programmation et l'informatique perds de sa crédibilité!
    C'est vraiment pas fort comme suggestion.

    Si une erreur survient dans le programme, c'est le client qui va être content d'abord![/quote]

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 131
    Par défaut
    si tu utilise eclipse eclipse te previent que cette methode peut soulever des exception et te les proposent ^^. Sinon c'est dans l' API.

  10. #10
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 900
    Billets dans le blog
    54
    Par défaut
    Quelle belle méthode vous démontrez ici
    C'est parfois le seul moyen de catcher des cas particulier dans lesquels des RuntimeException sont lancees. En effet toutes ces exceptions et autres erreurs (NullPointerException, IllegalArgumentException, ...) n'ont pas besoin d'etre declaree dans la clause throw d'une methode. Et donc elles ne sont parfois pas documentees/declarees soit parce que le programmeur est un gros faineant soit tout simplement parce que c'est difficile a faire a cause de la tracabilite nottement quand on utilise une large API (ou l'appel d'une fonction peut en fait declencher des appels recursifs a 10~20 sous-classes...).

    Extrait de la doc de RuntimeException :
    A method is not required to declare in its throws clause any subclasses of RuntimeException that might be thrown during the execution of the method but not caught.
    C'est pire encore pour des trucs genre OutOfMemoryError qui sont difficiles a attraper pour le moment (Java 5.0).

    Si une erreur survient dans le programme, c'est le client qui va être content d'abord!
    C'est bien pour ca qu'on fait des tests, des tests et encore des tests avant de livrer un programme
    ... et qu'on fournis des mises-a-jour et des patches apres la livraison...
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. Comment recuperer la valeur d'un variable dans une methode actionlisner
    Par javacafe dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 22/05/2014, 15h39
  2. Réponses: 3
    Dernier message: 15/02/2011, 17h17
  3. Réponses: 2
    Dernier message: 02/05/2006, 14h34
  4. Réponses: 19
    Dernier message: 26/01/2005, 10h41
  5. [Trigger] comment savoir que la bd a ete modifiee
    Par corwin_d_ambre dans le forum Bases de données
    Réponses: 7
    Dernier message: 13/02/2004, 12h50

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