<分区>
我已经深入阅读并讨论了以下问题和文章以及许多其他现在和过去的问题和文章:
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# 在这里:我不喜欢这个说法:( 你不应该试图在每一个可能的地方捕获每一个异常。
Should multiple Try/Catch blocks in a method be combined
当我需要决定用 try-catch 语句包含一些代码块时,我遇到了一个问题,我知道应该包含的代码是错误代码,我必须检查我可以检查的内容,但是例如: 我需要在某个文本文件中写一行,我应该检查该文件是否存在,如果我有权限写入它,我应该检查磁盘上是否有空间,或者磁盘是否可写,如果我检查了空间,如果我写文件时发生了什么事(其他应用程序或线程使用了空间,或者可移动驱动器已被删除?),如果我检查这些东西并处理 IOException 和 SecurityException 和其他潜在的异常,或者我应该只检查而不用 try-catch?
另一个例子: 我正在使用 EntityFramework 访问数据库,当访问某些东西时可能会联系数据库,我知道如果连接关闭我应该检查连接并尝试打开它,但是有很多很多事情可能会导致这条语句失败,数据库可能是在可移动驱动器上,该驱动器可能在读取时被移除,DBMS 的服务可能因任何原因停止,可能不会抛出空间异常,在我尝试执行我的代码后数据库的方案可能会改变 *** * 原因,我怎样才能防止我的代码失败,我可以只检查所有我能检查的东西,然后继续吗?或者我应该使用 try catch 来处理我可以预期的异常,即使我已经检查过它们?
请给我你的答案的引用,而不是一般的答案!
编辑
请务必阅读以下内容: http://msdn.microsoft.com/en-us/library/seyhszts.aspx