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 子句中只有一个父类在语法上是安全的。