try{

// 1.

  return ++x;

}catch(){

}finally{

//2.

  x++;

}

实际返回值还是 ++x后的结果,因为 ++x 后 x 的值会入栈,作为返回结果;

以上代码块中,return 中的 ++x先执行,然后执行 finally x++ ,然后返回 return的结果;

finally 执行的必要前提是 程序执行了 try;如果try 中包含System.exit(0),则java进程终止,finally 最终不会执行。

 posted on 2017-10-17 12:53  ChaseForFuture  阅读(572)  评论(0编辑  收藏  举报