C# 是否有异常错误类值的列表及其含义?特别是sqlexception
我正在处理一些数据库并捕获异常以检查各种情况。我不能简单地捕获sqlException,因为它可能意味着很多事情,并且通常使用C# 是否有异常错误类值的列表及其含义?特别是sqlexception,c#,.net,sql-server,exception,C#,.net,Sql Server,Exception,我正在处理一些数据库并捕获异常以检查各种情况。我不能简单地捕获sqlException,因为它可能意味着很多事情,并且通常使用 catch (SqlException e) { if (e.Errors[0].Class == 14) { return 0; } else ........ 检查具体情况。在本例中,类14(至少据我所知)表示重复条目。另
catch (SqlException e)
{
if (e.Errors[0].Class == 14)
{
return 0;
}
else ........
检查具体情况。在本例中,类14(至少据我所知)表示重复条目。另一个类表示找不到服务器、拒绝连接或登录错误等。有人知道这些错误类的列表在哪里吗?用谷歌搜索这一点很困难,因为任何带有“类”的东西都是显而易见的。14级的严重性可能意味着很多事情:
SELECT message_id, [text]
FROM sys.messages
WHERE language_id = 1033
AND severity = 14;
要查看完整列表,请执行以下操作:
SELECT message_id, severity, [text]
FROM sys.messages
WHERE language_id = 1033
AND severity > 0
ORDER BY severity;
我怀疑您对message_id列比对severity列更感兴趣,因为它更具体。
SqlError
类的Class
属性实际上指示了错误的严重性。有关错误类型,请查看属性。还可以使用该属性获取描述错误的字符串。您可以找到服务器错误消息列表。我想避免检查消息字符串本身。有一次我被告知这是非常糟糕的形式,因为你必须检查整个字符串的相等性。看起来数字可能是我需要的,我需要通读msdn页面,谢谢!是的,使用编号
进行决策。当出现意外错误时,可以使用消息
(在内部记录,但不要向用户显示消息)。是的,现在,所有意外异常都会写入调试日志