static void test() {
try {
System.out.print(x.toString() + " ");
}
finally { System.out.print("finally "); }
}
public static void main(String args[])
{
try
{
test();
}
catch (Exception ex) { System.out.print("exception ");
}
输出是finally exception
。应该试着总是跟着抓?
为什么在编译时没有错误,尽管try
后面跟着catch
在test()
?
try-catch-finally用于运行时异常而不用于编译时错误 – Kris 2012-02-06 09:49:59
@Kris,不正确。检查异常是**不是**运行时异常,'try-catch-finally'对于任何异常都是有效的。 – 2012-02-06 10:00:25
@TEG对不起,你是对的,我只想指出try-catch-finally编译时间错误的有用性,我指的是程序运行时发生的所有类型的错误/异常,而不是编译后的 – Kris 2012-02-06 10:11:00