2010-04-22 156 views

回答

3

如果你不打算來處理異常,最好沒有任何東西,而不是你提出的建議。所有這些都會增加捕獲開銷,然後重新拋出相同的異常。

如果您可以處理異常,那麼請不要在調用堆棧中傳播它。

1

我只能想到當我有那種 catch \ rethrow邏輯是當我想以某種方式記錄異常,否則我只是讓它傳播。

編輯:添加缺少的字空

+0

另外,你可能要拋出或重新拋出異常之前拋出另一個異常,與原來的異常作爲內部異常,或者做一些清理(如關閉連接) 。 – lasseeskildsen 2010-04-22 10:01:17

+0

是的,我錯過了「空」這個詞,因爲它不會改變程序流程等等(儘管我通常試圖把清理放在最後而不是捕獲)。 – 2010-04-22 10:10:19