处理SqlConnection,SqlDataReader,SqlCommand时要捕获哪些异常?

Eri*_*son 5 .net c# sql exception-handling exception

我使用SqlConnection,SqlDataReader,SqlCommandSqlParameters与我的数据库通信电子.我正在寻找关于抓住最相关Exceptions而不是抛出一个新的建议Exception(),这是一个太宽泛的课程.

所有帮助表示赞赏!

bry*_*mac 8

最相关的可能等同于可能发生的最常见的环境条件.编码错误将得到修复,但您无法控制环境问题.

此外,除了课程上的文档,您可以简单地尝试这些条件,并确保您正确处理条件.几年前,一位开发人员问我,如果连接丢失,会在某些各种技术中抛出什么异常 - 所以我拉了他的网线,我们运行他的代码:)

一些常见的是:

  1. 拔下网线
  2. 禁用您的网络适配器
  3. 停止SQL Server
  4. 创建一个需要很长时间的sproc
  5. 让database/tempdb变满
  6. 确保您没有sql server的权限
  7. 创建一个死锁的sproc

在某些情况下(网络,超时,死锁受害者),您可能希望在增加等待时重试.对于像db这样的其他人,你可以期望的最好的是为管理员提供良好的指导甚至记录详细信息.

通过尝试条件,您可以确保抛出什么异常并且您可以验证您是否正确处理了该条件.