Java P2

Voir le sujet précédent Voir le sujet suivant Aller en bas

Java P2

Message  Adriyian le Lun 21 Avr 2008, 23:59

j'aurai une question: :-$ si j'utilise dans une methode A une autre methode B qui throws une exception, ma methode B elle dois capter aussi l'exception ?

Adriyian

Nombre de messages : 20
Age : 28
Prénom : Adrian
Statut : Diplômé en Industrielle
Localisation : Bruxelles
Date d'inscription : 05/12/2006

Revenir en haut Aller en bas

Re: Java P2

Message  cluigi le Mar 22 Avr 2008, 00:24

si
Code:
public void methodeB(int tiche) throws Exception{
   if (tiche<0)
      throw new Exception("coucou");
}

alors

Code:
public void methodeA(){
   try {
      methodeB();
   }
   catch (Exception e){
      System.out.println(e);
   }
}

ou

Code:
public void methodeA() throws Exception{
   //opérations...
   methodeB();
   //le reste de tes operations
}

cluigi

Nombre de messages : 710
Age : 30
Prénom : Luigi
Statut : Ancienne star
Localisation : Bruxelles
Date d'inscription : 21/12/2006

http://stages2008.cluigi.be

Revenir en haut Aller en bas

Re: Java P2

Message  El_Turco le Mar 22 Avr 2008, 00:26

cluigi a écrit:si
Code:
public void methodeB(int tiche) throws Exception{
   if (tiche<0)
      throw new Exception("coucou");
}

alors

Code:
public void methodeA(){
   try {
      methodeB();
   }
   catch (Exception e){
      System.out.println(e);
   }
}

ou

Code:
public void methodeA() throws Exception{
   //opérations...
   methodeB();
   //le reste de tes operations
}

+1 mon bon cluigi.

Soit c'est qui traite lui-même l'exception, soit il le fait savoir via la clause throws aux méthodes appelantes, qui devront alors la traiter elles-mêmes

El_Turco

Nombre de messages : 896
Age : 30
Prénom : Adem
Statut : Ancien Industriel
Localisation : Bruxelles, Schaerbeek
Date d'inscription : 16/01/2007

Revenir en haut Aller en bas

Re: Java P2

Message  Adriyian le Mar 22 Avr 2008, 00:35

enfaite moi j'ai comme ca :
public int methodeA() throws Exception et
public void methodeB(avec un parametre)
{
et je fais appel a la methodeA
}
et a la compile j'ai ca:
unreported exception; must be caught or declared to be thrown (a la ligne ou je fais appel a la methodeA, dans la B :p)

Adriyian

Nombre de messages : 20
Age : 28
Prénom : Adrian
Statut : Diplômé en Industrielle
Localisation : Bruxelles
Date d'inscription : 05/12/2006

Revenir en haut Aller en bas

Re: Java P2

Message  nvs le Mar 22 Avr 2008, 00:40

notez qu'on pourrait aussi avoir :

Code:
public void methodeB(int tiche) throws Exception{
  if (tiche<0)
      throw new Exception("coucou");
}
et

Code:
public void methodeA() throws Exception{
  try {
      methodeB();
  }
  catch (Exception e){
      ...  // ici traitement *local* de l'exception
      throw e;
  }
}
où methodeA gère localement l'exception (désalloue des ressources particulières comme la fermeture de fichiers, p.ex.) mais la relance pour un traitement plus général par la procédure appelant methodeA (affichage d'un message, réinitiallisation en vue de l'appel de methodeA). cela peut sembler aller à l'encontre du rassemblement en un point du traitement des erreurs promu par le exceptions, mais c'est un bon moyen de gérer le local d'abord puis de remonter au global centralisé Smile

[edt]
notez qu'en en java, un bloc finally après try...[catch...] est tout désigné pour libérer des ressources et donc pourrait servir aussi (mais indépendamment de la levée ou non d'une exception). par contre, en c++, où finally n'est pas disponible mais bien throw sans argument, on procède comme décrit ci-dessus (mais une exception doit être levée) Smile
[/edt]








Dernière édition par nvs le Mar 22 Avr 2008, 08:43, édité 2 fois

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: Java P2

Message  nvs le Mar 22 Avr 2008, 00:44

Adriyian a écrit:enfaite moi j'ai comme ca :
public int methodeA() throws Exception et
public void methodeB(avec un parametre)
{
et je fais appel a la methodeA
}
et a la compile j'ai ca:
unreported exception; must be caught or declared to be thrown (a la ligne ou je fais appel a la methodeA, dans la B :p)
ça concorde avec les 3 cas exposés ci-dessus (à la différence que methodeA et methodeB sont inversés). si tu invoques methodeA, tu dois gérer localement l'exception qu'elle lance (avec une structure try...catch...) et / ou refiler la patate chaude à la procédure appelant methodeB (en indiquant throws Exception dans sa signature).







_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: Java P2

Message  cluigi le Mar 22 Avr 2008, 09:34



excellente réponse collégiale

Very Happy

cluigi

Nombre de messages : 710
Age : 30
Prénom : Luigi
Statut : Ancienne star
Localisation : Bruxelles
Date d'inscription : 21/12/2006

http://stages2008.cluigi.be

Revenir en haut Aller en bas

Re: Java P2

Message  Legenyes le Mar 22 Avr 2008, 10:34

cluigi a écrit:

excellente réponse collégiale

Very Happy

Quel travail de groupe. cheers

Legenyes

Nombre de messages : 626
Age : 31
Prénom : Sébastien
Statut : Ancien : Promo 2008-2009
Localisation : Braine-l'Alleud
Date d'inscription : 16/10/2007

Revenir en haut Aller en bas

Re: Java P2

Message  El_Turco le Mar 22 Avr 2008, 11:07

Adriyian a écrit:enfaite moi j'ai comme ca :
public int methodeA() throws Exception et
public void methodeB(avec un parametre)
{
et je fais appel a la methodeA
}
et a la compile j'ai ca:
unreported exception; must be caught or declared to be thrown (a la ligne ou je fais appel a la methodeA, dans la B :p)

Tu dois mettre l'appel à ta méthode A dans un bloc try/catch avec la bonne exception.
Je te déconseille quand même d'utiliser la classe Exception si plusieurs exceptions peuvent être levées.

El_Turco

Nombre de messages : 896
Age : 30
Prénom : Adem
Statut : Ancien Industriel
Localisation : Bruxelles, Schaerbeek
Date d'inscription : 16/01/2007

Revenir en haut Aller en bas

Re: Java P2

Message  Contenu sponsorisé Aujourd'hui à 14:28


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum