Dans le code écrit ci-dessous bien que je n'ai pas attrapé le ArithmeticException
, pourtant l'exception est traitée automatiquement et avec finally
Bloquer, le contenu de la méthode main()
est exécuté avec succès. Alors que si je supprime l'instruction return de finally et que je rends démo comme void, alors le programme après avoir exécuté finally
jette MainThread
Exception
.. pourquoi est-ce vrai?Mise en œuvre du bloc de fin
public class FinallyDemo {
int demo() {
try {
int a=5/0;
}
finally {
System.out.println("Finally Executed");
return 10;
}
}
public static void main(String s[]) {
int a=new FinallyDemo().demo();
System.out.println("Exception Handled");
}
}
Le bloc 'finally' avale simplement votre exception. –
Whoa, * way way * trop d'espace ... – chrylis
a attrapé l'exception pas mis en cache –