我已閱讀並現在討論以下問題,深刻的文章和其他許多人在過去:我應該用try-catch語句附上哪些類型的代碼塊?
Main method code entirely inside try/catch: Is it bad practice?
我將這篇文章的編碼標準在我的組織中處理異常!艾利不錯的人,但沒有回答我: http://www.codeproject.com/Articles/9538/Exception-Handling-Best-Practices-in-NET
What is the Best practice for try catch blocks to create clean code?
Best practices for exception management in Java or C# 這裏:我不喜歡這個statment :( 你不應該試圖抓住每一個例外,在一切可能的地方。
Should multiple Try/Catch blocks in a method be combined
我有一個問題,當我需要決定附上與try-catch語句代碼塊一些,我知道應該封閉代碼是個e有缺陷的代碼,並且我必須檢查我可以檢查的內容,但是例如: 我需要在某些文本文件中寫入一行,我應該檢查該文件是否存在,並且如果我有權寫入它,是否應該檢查磁盤上是否有空間,或者磁盤是否可寫,如果我檢查了空間,如果在寫入文件時發生了什麼(某些其他應用程序或線程使用了空間,或者可移動驅動器已被刪除? ),如果我檢查了這些東西並處理了IOException和SecurityException以及其他潛在異常,那麼這是否是一種最佳做法?或者我應該只檢查而不嘗試捕獲?
另一個例子: 我使用EntityFramework來訪問數據庫,當訪問某些東西時可能會聯繫數據庫,我知道我應該檢查連接是否關閉並嘗試打開它,但有很多很多事情可能會導致失敗在此聲明中,數據庫可能位於可移動驅動器上,讀取時該驅動器可能會被刪除,DBMS的服務可能因任何原因停止,不會引發空間異常,但在嘗試訪問數據庫後,數據庫的方案可能會更改執行我的代碼有一些****的原因,我怎樣才能防止我的代碼失敗,我可以檢查我可以檢查的每一件事,然後繼續?或者我應該使用try catch來解決我可以期待的異常,即使我已經檢查過它們了嗎?
請給我參考你的答案請不要一般的答案!
編輯
而且肯定閱讀: http://msdn.microsoft.com/en-us/library/seyhszts.aspx
如果您投了票,請發表評論! –
你只關心爲什麼它失敗了,如果你可以或者願意,做的工作糾正它的代碼。否則,您可以只記錄異常並重新拋出。大多數應用程序不需要你提出的那種健壯性,有的可以。 – PatFromCanada