finally中不要使用return的兩種情況

2022-07-01 17:21:11 字數 654 閱讀 6633

以下兩種情況要避免在finally中使用return

1. 如果catch塊中捕獲了異常,並將該異常throw給上級呼叫者處理,但finally中return了,那麼catch塊中的throw就失效了,上級方法呼叫者是捕獲不到異常的

例: 如下**上級呼叫者是捕獲不到異常的

public

static

void

main(string args)

catch

(exception e)

}public

static

intwork()

catch

(exception e)

finally

}

2 .在finally裡的return之前執行了其他return ,最終的返回值還是finally中的return

例 : 如下**返回的是finally裡return的5

public

static

void

main(string args)

public

static

intwork()

catch

(exception e)

finally

}

不要使用vector

做為乙個 stl容器,vector 有兩個問題 第一,它不是乙個真正 stl容器,第二,它並不儲存 bool 型別 除此以外,並沒有太多東西與本節題目有關 譯註,還不夠多嗎 乙個東西不能成為乙個stl容器,只因為會有人說它是乙個 譯註,乙個東西要成為stl容器,必須滿足所有 列於c 標準23.1節的...

盡量不要使用FindWindow

盡量不用 findwindow 最近發現 se6和 se5程序共存時視窗名稱一樣引起的 bug。原因是我們經常使用 findwindow 來獲得視窗控制代碼,然後進行訊息通訊,這樣呼叫簡單,但增加了不同模組之間的依賴性,比如同時有兩個程序時,就可能會找錯視窗。而如果靠人去維護這個視窗名稱,在程式工程...

盡量不要使用可變引數

在某些情況下我們希望函式引數的個數可以根據實際需要來確定,所以c語言中就提供了一種長度不確定的引數,形如 c 語言也繼承了這一語言特性。在採用ansi標準形式時,引數個數可變的函式的原型是 typefuncname typepara1,typepara2,這種形式至少需要乙個普通的形式引數,後面的省...