日期:2014-05-20  浏览次数:20699 次

try-finally问题 求高手解答
static int n(){
int k=0;
try{
k+=1;(1)
return 999;(2)
}
finally{
k+=1;(3)
}
}
public static void main(String[] args) {
System.out.println(n());
}

为什么将return 999;改为return k;执行顺序就变了呢?
当为return 999时,顺序为 (1)(3)(2)
当为return k时,顺序为(1)(2)(3)(2)

------解决方案--------------------
这个问题,板块里问了很多次了。
次序确实一直是先return。

只不过return k的时候,就把k付给了return。
所以finally即使k+=1了,return还是原来return没+1前的k。 



------解决方案--------------------
http://www.ticmy.com/?p=56