读书人

try-finally有关问题 求高手解答

发布时间: 2012-09-07 10:38:15 作者: rapoo

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

读书人网 >J2SE开发

热点推荐