您的位置:首页 > 其它

不能在finally块中return

2016-10-23 17:10 211 查看
try-catch块中永远返回finally中return的值 

【错误代码】 

static boolean f() { 

  try { 

      return true; 

  } finally { 

      return false; 

  } 



错误分析 

在这个应用场景中,不要用return来退出finally语句块,因为finally语句块都会被执行到,这样try程序块中执行正常也会在finally中退出,不会再回到try程序块中。 

Try-catch的流程说明: 

try { 

    … 

    … 

    return true; 

}catch(异常){  

   … 

} finally { 

   … 





1,try-catch-finally, 

如果try语句块遇到异常,try下面的代码就不执行了,转而执行catch语句块,执行完再执行finally语句块,最后结束。 

2,try-finally, 

如果在try语句块中执行到return语句前一条,未遇到异常,转而执行finally语句块,执行完再执行try中的return语句。 

不要用return、break、continue或throw来退出finally语句块 


正确用法 

//该方法返回false 

static boolean f() { 

  try { 

      return true; 

  } finally { 

     //不做return操作 

  } 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: