Saat mencoba fitur multi-tangkapan yang saya temukan dalam m1()
metode saya semuanya bekerja dengan baik seperti yang diharapkan.
Namun, dalam m2()
kode yang sama tidak dikompilasi. Saya baru saja mengubah sintaks untuk mengurangi jumlah baris kode.
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 {
}
}
Mengapa metode tidak m2()
dikompilasi?