Exception en java try / throws
nighthammer
Messages postés
13
Statut
Membre
-
the mad06 Messages postés 2 Statut Membre -
the mad06 Messages postés 2 Statut Membre -
lorsque l'on fait un "throws Exception" est-ce la même chose que si on faisait un "try{ ... }catch(Exception e){}?
5 réponses
-
c'est pas la meme chse
lorsque vous faisez throws comme vous etes entain de definir sur quelle methodes vous definissez l'exception assayer de revoir
la documentation comme javatout -
non ce n'est pas la même chose
Un petit exemple :
- soit une classe ClasseA avec une methode fonctionA
- soit une classe ClasseB avec une methode fonctionB
On sait que :
- la fonctionB est succeptible de générer des exceptions lors de son appel.
- la fonctionA appelle la fonctionB
class ClasseA{ public void fonctionA(){ ClasseB classeB = new ClasseB(); classeB.fonctionB(); } } class ClasseB{ public void fonctionB(){ ...ton code qui rique de générer l'exception... } }
Alors voici 2 façons de gérer ce cas :
1/ tu gère l'exception dans la fonctionB de la classeB:
class ClasseA{ public void fonctionA(){ ClasseB classeB = new ClasseB(); classeB.fonctionB(); } } class ClasseB{ public void fonctionB(){ try{ ...ton code qui rique de générer l'exception... } catch(Exception e){ ...ta gestion de l'excpetion (ex: affiche l'erreur)... } } }
la ClasseA ne sait même pas qu'il y a eu une exception, c'est la classe B qui gère tout le traitement de l'exception avec un bloc try catch
2/ tu gère l'exception dans la fonctionA de la classeA:
class ClasseA{ public void fonctionA(){ ClasseB classeB = new ClasseB(); try{ classeB.fonctionB(); } catch{ ...ta gestion de l'excpetion (ex: affiche l'erreur)... } } } class ClasseB{ public void fonctionB() throws Exception{ ...ton code qui rique de générer l'exception... } }
fonctionB s'arrête et remonte l'exception à la fonction appelante et ne s'en préoccupe pas.
c'est la fonction2 qui appelle la fonctionB qui devra s'en occuper à l'aide d'un bloc try catch, si elle ne possède pas elle aussi un throws.. -
Non, pas tout à fait,
le throws ejecte toutes les exceptions sur ta classe alors que le try catch est plus ponctuel.
PS -
Bonjour
j'aimerai que quelqu'un me devloppe cette =>
try {}
catch(typeExcepion e) { ... throw(typeException)e }
Je sais que pour throw c'est pour passe a un traitement a un niveau supreieur,
y-a-t-il un exemple ? -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -