当try中代码按照顺序执行,当出现异常的时候,下面的代码不会执行,直接在catch中
抛出对应的异常
public static void main(String args[]){
//((MMTest)null).testMethod();
try {
System.out.println("++++++++++++++算术异常"+"++++++++++");
// System.out.println(1/0);
System.out.println("++++++++++++++越界异常"+"++++++++++");
System.out.println(new int[] {}[0]);
} catch (ArithmeticException e) {
// TODO: handle exception
System.out.println("算术异常"+e.getMessage());
} catch (ArrayIndexOutOfBoundsException e) {
// TODO: handle exception
System.out.println("越界异常"+e.getMessage());
}catch(Exception e){
System.out.println(e.getMessage());
}
}
这样只会抛出算数异常,越界异常因为没有执行到,所以不抛出,并且Exception也不会出现,且只能放在最后,放在前面会出现Unreachable catch block for ArithmeticException. It is already handled by the catch block for Exception 错误,放在后面如果前面有对应的异常,则他不会执行,前面没有抛出对应的异常,才会执行