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

本文关键字:异常 SqlConnection 处理 SqlDataReader SqlCommand | 更新日期: 2023-09-27 18:16:28

我使用SqlConnection, SqlDataReader, SqlCommandSqlParameters与我的数据库通信。我正在寻找关于捕获最相关的Exceptions而不是抛出新的Exception()的建议,这是一个太宽泛的类。

感谢所有的帮助!

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

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

此外,除了类的文档之外,您还可以简单地尝试这些条件并确保您正确地处理了这些条件。几年前,一个开发人员问我,如果失去连接,在一些不同的技术中会抛出什么异常——所以我拉了他的网线,我们运行了他的代码:)

常见的有:

  1. 拔掉网线
  2. 禁用网络适配器
  3. 停止SQL Server
  4. 创建花费很长时间的进程
  5. 让数据库/tempdb得到满
  6. 确保您没有sql server
  7. 的权限
  8. 创建一个死锁进程

在某些情况下(网络、超时、死锁受害者),您可能需要增加等待时间来重试。对于像db full这样的其他人,你所能期望的最好的是为管理员提供良好的指导甚至日志细节。

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