一、try{} catch(){}finally{} return;html
显然程序按顺序执行。spa
二、try{ return; }catch(){} finally{} return;htm
(1)、程序执行try块中return以前(包括return语句中的表达式运算)代码;get
(2)、再执行finally块,最后执行try中return;程序
(3)、finally块以后的语句return,由于程序在try中已经return因此再也不执行。异常
三、try{ } catch(){return;} finally{} return;co
(1)、程序先执行try,若是遇到异常执行catch块,
(2)、有异常:则执行catch中return以前(包括return语句中的表达式运算)代码,再执行finally语句中所有代码,最后执行catch块中return. finally以后也就是4处的代码再也不执行。
(3)、无异常:执行完try再finally再return.new
四、try{ return; }catch(){} finally{return;}return
(1)、程序执行try块中return以前(包括return语句中的表达式运算)代码;
(2)、再执行finally块,由于finally块中有return因此提早退出。tar
五、try{} catch(){return;}finally{return;}
(1)、程序执行catch块中return以前(包括return语句中的表达式运算)代码;
(2)、再执行finally块,由于finally块中有return因此提早退出。
六、try{ return;}catch(){return;} finally{return;}
(1)、程序执行try块中return以前(包括return语句中的表达式运算)代码;
(2)、有异常:执行catch块中return以前(包括return语句中的表达式运算)代码;则再执行finally块,由于finally块中有return因此提早退出。
(3)、无异常:则再执行finally块,由于finally块中有return因此提早退出。
参考资料: try中finally与return http://www.studyofnet.com/news/1018.html