标有Exception 类 的 catch 代码块,可以捕捉到任何异常对象,包括 RuntimeException 类的对象。
下列案例表明,对于静态内部类的静态代码块初始化的时候抛出来的任何异常,同样如此。除非 没有初始化这个 静态内部类的静态代码块。
如果删去以上案例主方法(即驱动方法)中的代码:" System.out.println("名为:" + TE.name); ", 则上述 静态内部类的静态代码块就不会被初始化。编译、运行删掉这一行代码的程序的结果,就会根本没有输出。
import java.lang.*;
public class TestException {
static class TE {
static String name ="malie0";
static {
System.out.println("在静态代码块中 抛出 RumtimeException对象。");
throw new RuntimeException();
}catch(Exception ex){
System.out.println(ex);
System.out.println("在静态代码块中 抛出的 RumtimeException对象, 被捕捉到了。");
public static void main(String[] args) {
System.out.println("名为:" + TE.name);
在静态代码块中 抛出 RumtimeException对象。
ava.lang.RuntimeException
在静态代码块中 抛出的 RumtimeException对象, 被捕捉到了。
名为:malie0
注:
任何异常 类,包括 RuntimeException 类 都是 Exception 的 子类。 任何异常对象/实体,包括 RuntimeException 的实体/对象 都是 Exception 类的对象。所以,标有Exception 类 的 catch 代码块,可以捕捉到任何异常对象,包括 RuntimeException 类的对象。