1. class Exp1 extends Exceptionf 2. class Exp2 extends Exp1f 3. public class Test( public static void main(String[] args)( try( throw new Exp2(); ]catch(Exp1 ex)( System.out.println("Exception 1"); ]catch(Exp2 ex) System.out.println("Exception 2"); 编译结果
时间: 2024-03-05 22:50:47 浏览: 236
这段代码存在一些语法错误,我先对其进行修改:
1. 将 Exceptionf 改为 Exception
2. 将 Exp1f 改为 Exp1
修改后的代码如下:
```
class Exp1 extends Exception {
}
class Exp2 extends Exp1 {
}
public class Test {
public static void main(String[] args) {
try {
throw new Exp2();
} catch (Exp1 ex) {
System.out.println("Exception 1");
} catch (Exp2 ex) {
System.out.println("Exception 2");
}
}
}
```
修改后的代码可以成功编译。运行该程序会输出 "Exception 2",因为抛出的是 Exp2 异常,而 Exp2 继承自 Exp1,所以 catch 块中的 Exp1 也能够捕获到该异常。但由于 catch 块的顺序是按照代码中的顺序执行的,因此会先执行 catch (Exp1 ex) 块,输出 "Exception 1",而不是 "Exception 2"。
阅读全文