Trong khi thử tính năng đa bắt tôi thấy trong m1()
phương pháp của mình, mọi thứ đều hoạt động tốt như mong đợi.
Tuy nhiên, trong m2()
cùng một mã không biên dịch. Tôi vừa thay đổi cú pháp để giảm số lượng dòng mã.
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 {
}
}
Tại sao không m2()
biên dịch phương thức ?