我有一些 3-4 个存储过程——如果需要的话我可以修改它们——使用RAISERROR
通知我的应用程序数据库方面的一些致命错误。其中一些存储过程是从 C# 端执行的ExecuteNonQuery
,而其他则执行ExecuteReader
。目前,我将这些命令包装在try { ... } catch (SqlException ThisSqlException) { ... }
块,但问题是,至少在我必须单独处理的两种情况下会抛出此异常:
1) 连接本身错误,或者参数错误或类型不匹配;和
2)使用时出现的错误RAISERROR
明确地。
由于这是一个 WCF 应用程序,我必须根据异常的性质(是否由于异常)向客户端应用程序返回不同的反馈RAISERROR
命令与否)。那么我该如何区分这两种情况呢?
The RAISERROR command包含一个 msg_id 参数,可用于识别错误类型。该值通过以下方式提供给应用程序SqlException.Number财产。通过这种方式,您可以识别存储过程引发的任何异常,其中包括系统中定义的自定义错误消息。
If RAISERROR
被调用并带有文本字符串错误消息,然后Number
将是 50000。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)