2010-07-30 91 views
4

我一直在開發過去一年中SharePoint 2007/2010中的頁面和Web部件。我總是在我的代碼中加入的其中一個東西是try/catch塊,以便在拋出異常時處理錯誤處理。這樣,如果我有一個網頁部分中斷,我會在該特定Web部件中向用戶顯示一條很好的錯誤消息,而不是顯示在頁面頂部或整頁錯誤。我對這個過程很好,但是我正在尋找使用try/catch塊的方法的一些輸入(據我所知可能會有性能影響)。C#+中的SharePoint開發處理錯誤處理的最佳方法

通常,在進行數據庫或Web服務調用時,我總是使用try/catch塊。如果實現了複雜的邏輯(並且我無法測試所有不同的情況),我甚至有時會將我的通用C#代碼封裝在try/catch塊中。有時候,我只是有一點偏執狂,會用try/catch將所有代碼包裝在整個Web部件中。

我可以請一些關於使用try/catch塊進行一般C#開發,特別是SharePoint世界中的C#開發的反饋嗎?此外,我很想了解如何在開發SharePoint解決方案時有效地將嘗試/捕獲嵌入到我的C#代碼中(是否有更全局的方法來做到這一點?)

在此先感謝。

回答

1

隨着SharePoint世界中的錯誤處理,您通常會專注於性能。如果你擔心表現,你會想盡可能讓異常冒泡。我通常用try/catch塊封裝「入口」方法。例如,在asp.net窗體,Web部件,用戶控件等等中的事件處理程序。然後,當我想拋出自定義異常類型,定製錯誤消息等時,我會在實用程序,數據訪問等中包裝代碼。

不幸的是,我還沒有找到一種全局的方式來處理SharePoint中的錯誤。我已經爲Web部件完成了一個HandleError實用程序方法,該方法在「this」和異常對象中傳遞。 (WSPBuilder擴展Web部件項目實際上有一個很好的內置實現。)try/catch塊本身仍然是Web部件事件處理程序的本地部分。

+0

我們也是這樣做的。我們的大事是CreateChildControls中的Try/catch來捕獲大多數錯誤。 – 2010-08-02 21:32:29