try{ //todo }catch(Exception e){ //todo }finally{ //todo }
1.無論try,catch裏面的代碼快有無return,finally都會執行spa
2.若是try,catch裏有return,finally也有return,最後以finally爲準code
3.若是try,catch裏return的一個基本類型的變量,在finally裏修改變量的值,返回結果不變,由於try,catch執行return時,返回的數據已經本壓入棧中了blog
4.若是try,catch裏return的一個複雜類型的變量,在finally裏修改變量的引用(重寫new一個賦值),返回結果不變,緣由同上io
5.若是try,catch裏return的一個複雜類型的變量,不修改修改變量的引用,在finally裏修改該類的屬性值(obj.code="change"),返回結果發生改變,由於壓入棧的是引用地址,直接修改引用地址裏的屬性,返回結果會跟隨變化class