黑马程序员技术交流社区

标题: 这题答案到底是什么怎么运行后没有里面的答案。 ... [打印本页]

作者: 黑马-张扬    时间: 2012-12-2 18:42
标题: 这题答案到底是什么怎么运行后没有里面的答案。 ...
本帖最后由 黑马-张扬 于 2012-12-3 08:53 编辑

public class X {
public static void main(String [] args) {
try {
badMethod();
System.out.print("A");
}
catch (Exception ex) {
System.out.print("C");
}
finally {
System.out.print("B");
}
System.out.print("D");
}
public static void badMethod() {
throw new Error();
}
}
结果是什么?
A. ABCD
B. 编译失败.
C. 显示C,退出程序.
D. 显示B,C,退出程序.
E. 显示BCD,退出程序.
作者: xjandrew    时间: 2012-12-2 19:20
编译失败,都抛Error异常啦
作者: 张其辉    时间: 2012-12-2 19:27
编译通过,因为语法上并没有错误,结果显示:
B
Exception in thread "main" java.lang.Error
        at X.badMethod(X.java:16)
        at X.main(X.java:4)
Error异常是不可处理的异常,特点是JVM抛出的严重性问题,这种问题一般不针对性处理,直接修改程序。try和catch语句是针对异常处理的方式,就是针对Exception
所以A和C这两句不会执行,finally语句是一定会被执行的,作用是关闭资源,所以D也不会执行
     我也是新手,刚学习,不知道分析的对不对
作者: 黑马-张扬    时间: 2012-12-2 19:40
张其辉 发表于 2012-12-2 19:27
编译通过,因为语法上并没有错误,结果显示:
B
Exception in thread "main" java.lang.Error

谢谢,知道了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2