一、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