2013-08-31 72 views
2

我想調用一個函數的代碼來處理函數中引發的任何異常。如果我寫:爲什麼拋出一個例外而不是讓代碼拋出它?

  try 
      { 
       // Code than may raise an exception 
      } 
      catch 
      { 
       throw; 
      } 

該異常將傳回調用堆棧。我可以寫下面的代碼並獲得相同的結果嗎?在這種情況下是否有任何理由使用try catch

   // Code that may raise an exception 

回答

4

在你提出的方案中,捕捉,然後重新拋出的唯一原因,例外是如果你正在做的catch塊別的東西,如日誌或清理。否則,這完全是一個空操作。

順便說一下,如果您確實需要這種構造,那麼您使用throw而不是throw e會有好處。前者保留了callstack;後者不。

1

在這種情況下沒有理由使用try/catch

如果您記錄了任何信息或封裝了更高級別的異常,則會顯示try/catch

相關問題