Les exceptions en java
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Les exceptions en java



  1. #1
    invitec1281a2a

    Les exceptions en java


    ------

    Salut tout le monde!
    J'ai un problème avec les exceptions en java!
    par exemple,quand on utilise Throws dans une méthode,est ce que ceci veut dire que l'on dit au compilateur que nous n'allons pas gérer l'erreur qui peut se déclencher?en d'autres termes,est ce que cela nous évite d'insérer les blocs try et catch dans cette méthode ?ou dans tout le programme?

    -----

  2. #2
    invitec1281a2a

    Re : Les exceptions en java

    svp j'ai besoin de votre aide!
    Au secours!

  3. #3
    zoup1

    Re : Les exceptions en java

    Non au contraire, cela permet de déclencher à la main une exception (qui n'est pas générée par le système).
    Tu peux ensuite traiter cette exception avec try... catch.

    Cela permet de traiter simplement les erreurs (liées à ce que tu fais ) qui pourraient survenir dans un calcul.
    Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.

  4. #4
    invite1fb4554e

    Re : Les exceptions en java

    oui, utiliser le mot-clef "throws" après ta méthode sert à dire que celle-ci est susceptible de lever une exception. Cela peut arriver si :
    1)Si tu as toi-même lancé une exception à un moment dans le code (par exemple après un test sur les arguments de ta fonction)
    exemple :

    Code:
    public float racine(int n) throws IllegalArgumentException{
      //On ne peut pas prendre la racine d'un nombre négatif
      if(n<0)
        throw new IllegalArgumentException();
    
      /*
         Le code...
      */
    }
    2)Si, dans le code de ta fonction, tu appelles une méthode qui lance une exception, mais que tu ne veux pas traiter cette exception à l'intérieur de ta fonction. Ça veut dire que la prise en charge de l'exception éventuellement levée revient au programmeur qui va utiliser ta fonction dans son code.
    exemple :
    Code:
    public float racine(int n) throws IllegalArgumentException{
      float r = Math.sqrt(n); //Une exception sera lancée par la fonction sqrt si n<0
      return r;
    }
    Ou bien, si on attrape l'exception dans le code :
    Code:
    public float racine(int n){
       float r;
      try{
        r = Math.sqrt(n); 
      }
      catch(IllegalArgumentException e){ return -1; } //En signe d'erreur on retourne -1
      return r;
    }
    Dans les deux cas, ça n'a rien à voir avec ce que tu demandes : si une exception peut être levée quelque part, il faut bien qu'il y ait un try/catch à un moment ou à un autre ! Le "throws" n'est pas une manière de se débarrasser de la gestion des exceptions.

    ps : le code est juste là pour illustrer, je ne sais pas si la fonction sqrt fonctionne bien comme ça, et ça n'a pas beaucoup d'intérêt de réécrire la fonction racine : p

  5. A voir en vidéo sur Futura
  6. #5
    invitec1281a2a

    Re : Les exceptions en java

    Citation Envoyé par Gunman Voir le message
    oui, utiliser le mot-clef "throws" après ta méthode sert à dire que celle-ci est susceptible de lever une exception. Cela peut arriver si :
    1)Si tu as toi-même lancé une exception à un moment dans le code (par exemple après un test sur les arguments de ta fonction)
    exemple :

    Code:
    public float racine(int n) throws IllegalArgumentException{
      //On ne peut pas prendre la racine d'un nombre négatif
      if(n<0)
        throw new IllegalArgumentException();
    
      /*
         Le code...
      */
    }
    2)Si, dans le code de ta fonction, tu appelles une méthode qui lance une exception, mais que tu ne veux pas traiter cette exception à l'intérieur de ta fonction. Ça veut dire que la prise en charge de l'exception éventuellement levée revient au programmeur qui va utiliser ta fonction dans son code.
    exemple :
    Code:
    public float racine(int n) throws IllegalArgumentException{
      float r = Math.sqrt(n); //Une exception sera lancée par la fonction sqrt si n<0
      return r;
    }
    Ou bien, si on attrape l'exception dans le code :
    Code:
    public float racine(int n){
       float r;
      try{
        r = Math.sqrt(n); 
      }
      catch(IllegalArgumentException e){ return -1; } //En signe d'erreur on retourne -1
      return r;
    }
    Dans les deux cas, ça n'a rien à voir avec ce que tu demandes : si une exception peut être levée quelque part, il faut bien qu'il y ait un try/catch à un moment ou à un autre ! Le "throws" n'est pas une manière de se débarrasser de la gestion des exceptions.

    ps : le code est juste là pour illustrer, je ne sais pas si la fonction sqrt fonctionne bien comme ça, et ça n'a pas beaucoup d'intérêt de réécrire la fonction racine : p
    Merci pour ta réponse précieuse!
    Donc,si j'ai bien compris:si on utilise Throws dans une méthode;ceci nous permet de laisser la gestion de l'erreur ailleurs dans la méthode main peut être!(exemple 2).
    N'est ce pas?

  7. #6
    VTurn

    Re : Les exceptions en java

    Citation Envoyé par chercheur de sciences Voir le message
    Merci pour ta réponse précieuse!
    Donc,si j'ai bien compris:si on utilise Throws dans une méthode;ceci nous permet de laisser la gestion de l'erreur ailleurs dans la méthode main peut être!(exemple 2).
    N'est ce pas?
    Oui, ça veut dire que la méthode qui contient le "throws" est susceptible de lancer cette exception. Du coup, quand tu l'appelles depuis une autre méthode, il faut soit que cette méthode fasse un try/catch sur cette Exception (ou une Exception parente), soit qu'elle-même fasse un throws sur cette exception (ou une Exception parente), et ça peut continuer jusqu'à main() comme tu le dit, qui peut elle-même faire déclarer des throws (et dans ce cas la JVM plantera si il y a une Exception).

    V.

  8. #7
    invitec1281a2a

    Re : Les exceptions en java

    Citation Envoyé par VTurn Voir le message
    Oui, ça veut dire que la méthode qui contient le "throws" est susceptible de lancer cette exception. Du coup, quand tu l'appelles depuis une autre méthode, il faut soit que cette méthode fasse un try/catch sur cette Exception (ou une Exception parente), soit qu'elle-même fasse un throws sur cette exception (ou une Exception parente), et ça peut continuer jusqu'à main() comme tu le dit, qui peut elle-même faire déclarer des throws (et dans ce cas la JVM plantera si il y a une Exception).
    Merci beaucoup pour ta réponse!
    C'est exactement ce que je voulais savoir

Discussions similaires

  1. configuration électronique: exceptions
    Par invite1d11983c dans le forum Chimie
    Réponses: 4
    Dernier message: 03/10/2009, 15h55
  2. Configuration R/S exceptions
    Par invitee40471a7 dans le forum Chimie
    Réponses: 5
    Dernier message: 05/01/2009, 11h58
  3. [Génétique] Exceptions aux lois de mendel
    Par invitef1a3dd3e dans le forum Biologie
    Réponses: 4
    Dernier message: 06/01/2008, 15h20
  4. Réponses: 9
    Dernier message: 06/05/2006, 14h52
  5. Configurations électroniques et exceptions
    Par inviteaeeb6d8b dans le forum Physique
    Réponses: 4
    Dernier message: 16/04/2006, 18h48
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...