在尝试多捕获功能时,我在自己的m1()方法中发现一切正常。
但是,在m2()同一代码中无法编译。我刚刚更改了语法以减少代码行数。
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 {
    }
}
方法为什么不m2()编译?