我的问题是如何在 C# 中处理 sql 异常,有没有办法检查从数据访问层抛出的 sql 异常类型?例如,如果db抛出一个唯一约束异常,或者外键异常,有没有办法从c#中捕获它?您对这些数据库异常使用的异常处理模式是什么?
最佳答案
看看 documentation of the SqlException类,特别是在其 properties : SqlException.Number
,例如,应该允许您识别发生了哪种类型的 SqlException(唯一约束、外键、...)。
您可以使用过滤异常来捕获特定错误。 VB.NET:
Try
...
Catch ex as SqlException When ex.Number = ...
...
Catch ex as SqlException When ex.Number = ...
...
End Try
C#(版本 6 及以上):
try
{
...
}
catch (SqlException ex) when (ex.Number == ...)
{
...
}
catch (SqlException ex) when (ex.Number == ...)
{
...
}
关于c# - 如何在 C# 中处理特定的 SQL 异常(例如,违反唯一约束)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1666887/