我现在和过去已经深入阅读并讨论了以下问题和文章以及许多其他问题和文章:
主要方法代码完全在 try/catch 中:这是不好的做法吗?
我将使这篇文章成为我组织中异常处理的编码标准!非常好的一个,但没有回答我: http: //www.codeproject.com/Articles/9538/Exception-Handling-Best-Practices-in-NET
Java 或 C# 中异常管理的最佳实践 这里:我不喜欢这种说法 :( 您不应该尝试在每个可能的地方捕获每个异常。
当我需要决定用 try-catch 语句包含一些代码块时,我遇到了一个问题,我知道应该包含的代码是错误代码,并且我必须检查我可以检查的内容,但是例如:我需要在某个文本文件中写一行,我应该检查文件是否存在,如果我有写权限,我应该检查磁盘上是否有空间,或者磁盘是可写的,如果我检查了空间,如果在我写文件时发生了什么事(其他一些应用程序或线程使用了空间,或者可移动驱动器已被删除?),如果我检查了这些事情并处理了 IOException 和 SecurityException 以及其他潜在的异常,这是一个最佳实践吗? ,或者我应该只检查而不使用try-catch?
另一个例子:我正在使用EntityFramework访问数据库,访问时可能会联系到数据库,我知道我应该检查连接是否关闭并尝试打开它,但是有很多很多东西可能导致这个语句失败,数据库可能在可移动驱动器上,读取时可能会删除该驱动器,DBMS的服务可能因任何原因停止,不会抛出空间异常,数据库的方案可能会在我尝试执行我的代码后改变****原因,如何防止我的代码失败,我可以检查所有可以检查的内容,然后继续吗?或者我应该使用 try catch 来处理我可以预期的异常,即使我已经检查过它们?
请给我你的答案的参考,而不是一般的答案!
编辑
并确保阅读:http: //msdn.microsoft.com/en-us/library/seyhszts.aspx