try{
// 1.
return ++x;
}catch(){
}finally{
//2.
x++;
}
实际返回值还是 ++x后的结果,因为 ++x 后 x 的值会入栈,作为返回结果;
以上代码块中,return 中的 ++x先执行,然后执行 finally x++ ,然后返回 return的结果;
finally 执行的必要前提是 程序执行了 try;如果try 中包含System.exit(0),则java进程终止,finally 最终不会执行。
try{
// 1.
return ++x;
}catch(){
}finally{
//2.
x++;
}
实际返回值还是 ++x后的结果,因为 ++x 后 x 的值会入栈,作为返回结果;
以上代码块中,return 中的 ++x先执行,然后执行 finally x++ ,然后返回 return的结果;
finally 执行的必要前提是 程序执行了 try;如果try 中包含System.exit(0),则java进程终止,finally 最终不会执行。