加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql-server – 怎样分派SqlException编号

发布时间:2021-01-21 17:05:31 所属栏目:编程 来源:网络整理
导读:SqlException具有属性Number. 然后有这个:http://msdn.microsoft.com/en-us/library/cc645603.aspx 这个:http://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx 它好像是一个或另一个 题: 怎么抉择哪个? 要求的缘故起因: 我必要

SqlException具有属性Number.

然后有这个:http://msdn.microsoft.com/en-us/library/cc645603.aspx

这个:http://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx

它好像是一个或另一个

题:

怎么抉择哪个?

要求的缘故起因:

我必要捕捉某些SqlExceptions并按照Number属性抉择如那里理赏罚它们但我不知道当体系行使来自两者的动静时我应该看哪个列表,我不知道是什么尺度用于选择.

譬喻:

> 53号 – 来自处事器错误动静列表(两者都存在)
>数字10054 – 来自体系错误动静列表(两者都存在)
> Number -1 – 来自处事器错误动静列表(仅存在于处事器列表中)
> 121号 – 来自体系错误动静列表(两者都存在)
……

办理要领

该理论以为是SQL错误号,譬喻.处事器端 ERROR_NUMBER().换句话说,第一个列表.

可是,SqlClient陈诉的一些非常产生在客户端,而不是处事器端.一个典范的例子是错误,如毗连随处事器失败,由于你没有毗连,没有处事器端错误可言.譬喻,一个错误的处事器名称(在DNS中不理会),在这种环境下,InnerException将指向Win32Exception,其值为NativeErrorCode ERROR_BAD_NETPATH.在这种环境下,53体系错误代码将陈诉为SqlException错误号.

在其他环境下,SqlClient陈诉的错误是套接字错误,如溘然断开毗连.同样,没有“处事器端”错误可言,而且SqlException将包括范例为SocketException的InnerException(Win32Error的子类)和一个众所周知的WSA错误号的NativeErrorCode,如WSAECONNRESET.在这种环境下,SqlException.ErrorNumber将是10054,可是来自WSA范畴的是10054,而不是来自SQL Server错误范畴的10054.我知道…

那你该怎么办?确保搜查InnerException,假如是Win32Exception,则ErrorNumber来自体系错误代码(操纵体系错误).不然它应该是SQL Server错误号.

哦,然后有-1 …我以为这是由SqlClient自己陈诉的(譬喻一些内部状态错误),但我不确定.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读