public class TestTry {
public static void main(String[] args) {
System.out.println(test());//为什么打印 1?
}
private static int test()
{
int i = 1;
try {
return i;
} catch (Exception e) {
}
finally
{
i++;
}
return 0;
}
public static void main(String[] args) {
System.out.println(test());//为什么打印 1?
}
private static int test()
{
int i = 1;
try {
return i;
} catch (Exception e) {
}
finally
{
i++;
}
return 0;
}
}
数返回值是当时运行到return这行时候整个return 表达式的结果,也就是当时i的值。
而不是到了return再去执行finally,然后回过头来再去运行return 表达式,求当时(finally以后)表达式的值
http://topic.csdn.net/u/20111009/19/dc661ee7-ab58-4ee3-931d-93a7630d18f2.html
本文解释了Java中try-catch-finally结构的工作原理,特别关注finally块如何确保代码执行即使在异常抛出时也能完成某些操作。通过实例演示,读者可以理解在finally块之后的表达式是如何被评估的。

3032

被折叠的 条评论
为什么被折叠?



