Imaginons que j'ai une classe Main qui utilise un objet Objet.
La méthode Objet.except() rencontre une exception. Puis-je l' "attraper" (catch) dans Main (et non dans Objet) ? Si oui, comment ?
En gros, comment faire ce genre de chose ?:
Main {
...
try {
Objet.except();
} catch (Exception e) {...}
...
}
Copyright © 2024 1QUIZZ.COM - All rights reserved.
Answers & Comments
Verified answer
ton exemple est vraiment très abstrait mais si je comprend bien :
tu cherche à propager une exception aux méthodes appelante (ici une méthode de la class Main).
Pour ça il faut utiliser la clause throws
public void except () throws Exception1, ExceptionN {
throws ne transmet que les exceptions Exception1, ExceptionN les autres doivent êtres capturées
ne pas confondre avec "throw" qui permet de définir les causes d'une exception
if( i<0) throw new NegativValueException(i) ; // par exemple
mais l'usage d'un "throw" implique généralement de transmettre la nouvelle exception crée et donc d'utiliser la clause "throws" car créer et capturer une exception dans une même méthode n'a pas de sens!
Les exceptions remontent dans la pile d'appel jusqu'à ce qu'elles soient catchés. Si tu ne la catch pas dans Objet.except(), elle sera remontée dans la méthode appelante (qui peut tout à faut appartenir à ta classe Main).
Bah dit donc ces informaticiens ont bien un langage à part que seul un autre peut comprendre...
http://www.btcweb.com/btc/fr/download/java/excepti...
j'étoile pour ceux qui comprennent....