我總是懷疑我寫的應用程序的級別是多少try-catch
?我應該寫多少個try&catch塊?
DAL?緩存? BL? UI邏輯?
如果我寫的日誌,並重新把它
我應該使用的try-catch在每一個功能呢?
aswuming任何函數可以有例外,我沒有想到的
我總是懷疑我寫的應用程序的級別是多少try-catch
?我應該寫多少個try&catch塊?
DAL?緩存? BL? UI邏輯?
如果我寫的日誌,並重新把它
我應該使用的try-catch在每一個功能呢?
aswuming任何函數可以有例外,我沒有想到的
嗯,這取決於。在UI層中,我在Application_Error中捕獲全局錯誤,並相應地處理這些錯誤。我只會嘗試捕獲我不想冒泡到UI並導致重定向到通用錯誤頁面的錯誤。這對於我報告大部分(如果不是全部)錯誤都是有效的。
有些人處理錯誤的方式不同;他們會捕獲業務層中的錯誤,並從BLL中記錄並返回它們,或者記錄並重新拋出一個通用錯誤。例如,檢查Enterprise Library Exception block如何接近錯誤。
你甚至可以使用像PostSharp這樣的AOP庫附加到你想要處理錯誤的所有對象,或者使用MVC的異常過濾來處理錯誤。
我個人傾向於使用方式更多的嘗試,最後比的try-catch塊(除了一些外部數據源的電話)
我保持的try-catch對我的代碼,終點在那裏我可以記錄錯誤堆棧,並在必要時處理錯誤消息。
請注意,請務必致電throw;
,以免造成任何異常。
無論你需要他們。我想,這個問題太廣泛了,無法回答。 – zimdanen
這是一些信息:http://stackoverflow.com/a/1080190/128217 – zimdanen
這是一個普遍的問題(請參閱[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