Java 异常处理的工作机制

原文地址:http://www.programcreek.com/2009/03/exception-handling/

下面有 2 个例子,一个是调用方法必须处理被调用方法抛出的异常;另一个是超类可以用来捕获或处理子类异常。

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

这是一个处理异常的程序示例,只是测试一下,如果在一个方法中抛出异常,不仅该方法,而且所有调用该方法的方法都必须声明或抛出该异常。

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

超类可以用来捕获或处理子类异常

以下代码也是可行,因为超类可以用来捕获或处理子类异常:

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

这就是为什么 catch 子句中只有一个父类在语法上是安全的。

results matching ""

    No results matching ""