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

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

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

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

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

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