下面两个例子, 一个显示,调用者方法需要处理被调用方法抛出的异常。 另一个显示超类可以用来捕获或处理子类异常。
调用方法必须处理被调用方法抛出的异常
这是一个处理异常的程序,如果一个方法抛出了异常,不光它要什么声明或抛出异常,调用它的方法也需要。
public class exceptionTest {
private static Exception exception;
public static void main(String[] args) throws Exception {
callDoOne();
}
public static void doOne() throws Exception {
throw exception;
}
public static void callDoOne() throws Exception {
doOne();
}
}
超类可以捕获或处理子类异常
下面的代码是ok的,因为超类可以捕获和处理子类异常
class myException extends Exception{
}
public class exceptionTest {
private static Exception exception;
private static myException myexception;
public static void main(String[] args) throws Exception {
callDoOne();
}
public static void doOne() throws myException {
throw myexception;
}
public static void callDoOne() throws Exception {
doOne();
throw exception;
}
}