}
}
}
}编译运行:

我们可以看到,所以finally中的语句也就没有得到执行。
程序中System.exit(-1); 表示终止当前正在运行的java虚拟机,只要System.exit(status);中status为负值时都表示终止当前正在运行的java虚拟机。
如果此时没有异常发生,我们把程序中exception.Divide(12,-2);改写为:
exception.Divide(12,1);
则没有异常发生,则可以输出字符串"finally!":

对于RuntimeException,通常不需要我们去捕获,这类异常由Java运行系统自动抛出并自动处理。
如果父类中的方法抛出多个异常,则子类中的覆盖方法要么抛出相同的异常,要么抛出异常的子类,但不能抛出新的异常。
注意:构造方法是除外的。
示例程序如下:
import java.io.*;
class MyException...{
MyException()...{
}
int Divide(int a,int b)throws ArithmeticException,DivisorIsMinusException...{
if(b<0)...{
throw new DivisorIsMinusException("Divisor cannot be minus!");
}
return a/b;
}
}
class MyChildException