2013-02-06 94 views
-6

我總是懷疑我寫的應用程序的級別是多少try-catch我應該寫多少個try&catch塊?

DAL?緩存? BL? UI邏輯?

如果我寫的日誌,並重新把它

我應該使用的try-catch在每一個功能呢?

aswuming任何函數可以有例外,我沒有想到的

+3

無論你需要他們。我想,這個問題太廣泛了,無法回答。 – zimdanen

+0

這是一些信息:http://stackoverflow.com/a/1080190/128217 – zimdanen

+0

這是一個普遍的問題(請參閱[this](http://msdn.microsoft.com/en-us/library/vstudio/ ms229005(v = vs.100).aspx)和[this](http://www.codeproject.com/Articles/9538/Exception-Handling-Best-Practices-in-NET)),並且已經被問過幾次。](http://stackoverflow.com/search?q=exception+handling+.net+) – gideon

回答

1

嗯,這取決於。在UI層中,我在Application_Error中捕獲全局錯誤,並相應地處理這些錯誤。我只會嘗試捕獲我不想冒泡到UI並導致重定向到通用錯誤頁面的錯誤。這對於我報告大部分(如果不是全部)錯誤都是有效的。

有些人處理錯誤的方式不同;他們會捕獲業務層中的錯誤,並從BLL中記錄並返回它們,或者記錄並重新拋出一個通用錯誤。例如,檢查Enterprise Library Exception block如何接近錯誤。

你甚至可以使用像PostSharp這樣的AOP庫附加到你想要處理錯誤的所有對象,或者使用MVC的異常過濾來處理錯誤。

0

我個人傾向於使用方式更多的嘗試,最後比的try-catch塊(除了一些外部數據源的電話)

我保持的try-catch對我的代碼,終點在那裏我可以記錄錯誤堆棧,並在必要時處理錯誤消息。

請注意,請務必致電throw;,以免造成任何異常。