请写出以下程序运行结果: class Exception1 extends Exception {} class Exception2 extends Exception1 {} public class Test { public static void main(String[] args) throws Exception { try { try { throw new Exception2(); } catch ( Exception1 a ) { System.out.println("Caught Exception1"); throw a; } } catch ( Exception2 s ) { System.out.println("Caught Exception2"); return ; } finally { System.out.println("Hello World!"); }}}
时间: 2024-02-14 09:06:25 浏览: 121
运行结果1
该程序的运行结果为:
```
Caught Exception1
Hello World!
```
程序中定义了两个自定义的异常类 Exception1 和 Exception2,其中 Exception2 是 Exception1 的子类。在 main 方法中,首先执行 try 块中的代码,在其中先抛出了一个 Exception2 异常,然后通过 catch 块捕获了该异常,并输出 "Caught Exception1",然后将该异常再次抛出。由于 Exception2 是 Exception1 的子类,所以 Exception1 的 catch 块可以捕获 Exception2 异常。接着执行 finally 块中的代码,输出 "Hello World!"。由于在 Exception1 的 catch 块中已经将异常抛出,所以程序最终没有捕获 Exception2 异常,直接结束运行。
阅读全文