是否有异常错误类值列表及其含义?特别是sqlexception

时间:2012-02-23 01:00:31

标签: c# .net sql-server exception

我正在使用数据库并捕获异常以检查各种条件。我不能简单地捕获sqlException,因为它可能意味着很多东西,并且通常使用

catch (SqlException e)
        {
            if (e.Errors[0].Class == 14)
            {
                return 0;
            }
            else ........

检查具体案例。在这个例子中,第14类(至少据我所知)表示重复的条目。另一个类意味着无法找到服务器,或拒绝连接或登录错误等。有谁知道可以找到这些错误类的列表?谷歌搜索这是很困难的,因为任何带有“类”的东西都显而易见。

2 个答案:

答案 0 :(得分:6)

严重程度为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列比对严重性列更感兴趣,因为它更具体一些。

答案 1 :(得分:4)

Class类的SqlError属性实际上表示错误的严重性。对于错误类型,请查看Number属性。您还可以使用Message属性来获取描述错误的字符串。您可以找到服务器错误消息列表here