Java初学者关于异常的问题

img

img

img

请问各位,自定义了一个编译时异常后,在测试类中的myException方中new出它的对象,然后对这个异常的处理方式为向上抛出,在main方法中调用myException方法并捕捉了这个异常,为什么catch分支中的222不能被打印出来呢?谢谢!

因为myException()方法体内并没有异常;
方法一
给一个异常,例如

   public void myException() throws MyException {
        int result = 1/0;
    }

方法二
直接抛出MyException异常

 public void myException() throws MyException {
        throw new MyException();
    }

要先抛出异常,然后才能捕获。new MyException()只是new了一个异常类,并没有抛出。所有你需要在new MyException()前加上throw。

public void myException() throws MyException {
     throw new MyException();
}