En essayant la fonction multi-catch que j'ai trouvée dans ma m1()
méthode, tout fonctionne bien comme prévu.
Cependant, dans m2()
le même code ne compile pas. Je viens de changer la syntaxe pour réduire le nombre de lignes de code.
public class Main {
public int m1(boolean bool) {
try {
if (bool) {
throw new Excep1();
}
throw new Excep2();
//This m1() is compiling abs fine.
} catch (Excep1 | Excep2 e) {
return 0;
}
}
public int m2(boolean b) {
try {
throw b ? new Excep1() : new Excep2();
//This one is not compiling.
} catch (Excep1 | Excep2 e) {
return 0;
}
}
private static interface I {
}
private static class Excep1 extends Exception implements I {
}
private static class Excep2 extends Exception implements I {
}
}
Pourquoi la méthode ne m2()
compile- t-elle pas ?