黑马程序员技术交流社区
标题:
这题答案到底是什么怎么运行后没有里面的答案。 ...
[打印本页]
作者:
黑马-张扬
时间:
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