6.1 展示Java异常如何工作

下面两个例子, 一个显示,调用者方法需要处理被调用方法抛出的异常。 另一个显示超类可以用来捕获或处理子类异常。

调用方法必须处理被调用方法抛出的异常

这是一个处理异常的程序,如果一个方法抛出了异常,不光它要什么声明或抛出异常,调用它的方法也需要。

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;
    }
}

你可能感兴趣的:(6.1 展示Java异常如何工作)