天天看點

有return時try catch finally的執行順序

1、不管有木有出現異常,finally塊中代碼都會執行;

2、當try和catch中有return時,finally仍然會執行;

3、finally是在return後面的表達式運算後執行的(此時并沒有傳回運算後的值,而是先把要傳回的值儲存起來,不管finally中的代碼怎麼樣,傳回的值都不會改變,任然是之前儲存的值),是以函數傳回值是在finally執行前确定的;

4、finally中最好不要包含return,否則程式會提前退出,傳回值不是try或catch中儲存的傳回值。