在处理SqlConnection, SqlDataReader, SqlCommand时要捕获哪些异常?
本文关键字:异常 SqlConnection 处理 SqlDataReader SqlCommand | 更新日期: 2023-09-27 18:16:28
我使用SqlConnection
, SqlDataReader
, SqlCommand
和SqlParameters
与我的数据库通信。我正在寻找关于捕获最相关的Exceptions
而不是抛出新的Exception()
的建议,这是一个太宽泛的类。
感谢所有的帮助!
最相关的可能等同于可能发生的最常见的环境条件。编码错误将被修复,但你无法控制环境问题。
此外,除了类的文档之外,您还可以简单地尝试这些条件并确保您正确地处理了这些条件。几年前,一个开发人员问我,如果失去连接,在一些不同的技术中会抛出什么异常——所以我拉了他的网线,我们运行了他的代码:)
常见的有:
- 拔掉网线
- 禁用网络适配器
- 停止SQL Server
- 创建花费很长时间的进程
- 让数据库/tempdb得到满
- 确保您没有sql server 的权限
- 创建一个死锁进程
在某些情况下(网络、超时、死锁受害者),您可能需要增加等待时间来重试。对于像db full这样的其他人,你所能期望的最好的是为管理员提供良好的指导甚至日志细节。
通过尝试条件,您可以确保抛出什么异常,并且可以验证您是否正确地处理了条件。