Я изучаю попытку и исключаю исключение из java, и у меня есть некоторые проблемы. На самом деле, я имею установку ArithmeticException улов & попробовать, но исключение не поймать в некоторых случаях ...Java exceptions catch Beginner
Мой Recursion.java:
import java.lang.ArithmeticException;
public class Recursion {
private int u0;
private int u1;
public Recursion(int u0, int u1) {
this.u0 = u0;
this.u1 = u1;
}
public int boucle (int n) throws ArithmeticException{
switch (n) {
case 0 :
return this.u0;
case 1 :
return this.u1;
}
try{
if ((n%2) == 0) {
return (boucle(n-1)/boucle(n-2)) - (boucle(n-2)/boucle (n-1));
}
else{
return (boucle(n-2)/boucle(n-1)) - (boucle(n-1)/boucle (n-2));
}
}
catch (ArithmeticException e){
System.out.println("Erreur division par 0 !");
throw e;
}
}
}
Мои Main.java:
public class Main {
public static void main(String[] args){
Recursion monObjet1 = new Recursion (100,2);
Recursion monObjet2 = new Recursion (100,1);
System.out.println(monObjet2.boucle(10));
}
}
I получить это:
Erreur division par 0 !
Erreur division par 0 !
Erreur division par 0 !
Erreur division par 0 !
Exception in thread "main" java.lang.ArithmeticException:/by zero
at Recursion.boucle(Recursion.java:32)
at Recursion.boucle(Recursion.java:32)
at Recursion.boucle(Recursion.java:32)
at Recursion.boucle(Recursion.java:28)
at Main.main(Main.java:11)
Я не понимаю, почему исключение не ловят. .
Некоторые из выходного кода может быть по-французски Я извиняюсь за неудобства ...
С наилучшими пожеланиями, Аструс
вы поймаете исключение, но затем снова выбросите его с помощью 'throw e' – wero