2013-07-09 41 views
-1

我很想知道哪些最佳做法是針對未使用的捕獲異常。具有諷刺意味的是,這首先違背了最佳實踐。我發現自己有能力做到這一點,也許這只是我的經驗不足,但我想知道通常做什麼。捕獲的異常沒有被使用的最佳做法

我已經編寫了一個小控制檯應用程序,用於從一個Sharepoint站點獲取列表信息以在另一個服務器場上共享它。有問題的函數將列表查詢到XElement中,並且我正在捕獲任何錯誤。這是片段。

... 
    try 
    { 
     return lists.GetListItems("Global Announcement", null, null, viewFields.GetXmlNode(), null, null, null) 
       .GetXElement().Elements().First().Elements().First(); 
    } 
    catch (Exception ex) 
    { 
     throw; 
    } 
} 
catch (Exception ex) 
{ 
    ErrorLogging.SaveErrorToEventLog("Encountered an error when attempting to connect: ", ex); 
} 

我被一位資深人士建議只使用內部異常的throw來保持堆棧信息的正確順序。在這種情況下,我很想知道Exception ex的最佳做法是什麼,或者如果首先打破try catch的最佳做法應該永遠不會發生?

+3

沒有「最佳實踐」。 –

+1

要麼不捕捉它,要麼將其記錄到文件中。 – gunr2171

回答

3

捕捉異常只是爲了重新拋出它是毫無意義的,只會導致您的代碼變得越來越慢。另一方面,如果你確實抓住並且不重新拋出,你應該總是將它記錄在某個地方,因爲你似乎在外部處理程序中正確地執行了操作。