使用SqlConnection,SqlDataReader和SqlCommand时需要捕获哪些异常?

5
我正在使用SqlConnectionSqlDataReaderSqlCommandSqlParameters与我的数据库进行通信。我希望得到有关捕获最相关的Exceptions而不是抛出新的Exception()的建议,因为它是一个太广泛的类。
非常感谢您的帮助!
1个回答

8

“最相关”通常意味着可能发生的最常见的环境条件。编码错误会被修复,但您无法控制环境问题。

此外,除了类文档外,您可以尝试这些条件,并确保您正确地处理该条件。几年前,一位开发人员问我在某些不同技术中如果失去连接会抛出哪个异常 - 所以我拔下了他的网络电缆,然后我们运行了他的代码 :)

一些常见的条件包括:

  1. 拔掉您的网络电缆
  2. 禁用您的网络适配器
  3. 停止SQL Server
  4. 创建需要很长时间才能完成的存储过程
  5. 让数据库/tempdb满
  6. 确保您没有权限访问SQL服务器
  7. 创建死锁存储过程

在某些情况下(如网络、超时、死锁受害者),您可能需要重试并逐渐增加等待时间。对于像数据库满这样的其他情况,您最好提供良好的指导或甚至记录管理员的详细信息。

通过尝试这些条件,您可以确保所抛出的异常,并验证您是否适当地处理了该条件。


@bryanmac - 感谢您的回答。当我提出这个问题时,我只考虑了编码错误,没有想到环境条件,谢谢! - Erik Larsson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接