Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否有异常错误类值的列表及其含义?特别是sqlexception_C#_.net_Sql Server_Exception - Fatal编程技术网

C# 是否有异常错误类值的列表及其含义?特别是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(至少据我所知)表示重复条目。另

我正在处理一些数据库并捕获异常以检查各种情况。我不能简单地捕获sqlException,因为它可能意味着很多事情,并且通常使用

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页面,谢谢!是的,使用
编号
进行决策。当出现意外错误时,可以使用
消息
(在内部记录,但不要向用户显示消息)。是的,现在,所有意外异常都会写入调试日志