【发布时间】:2011-06-28 15:44:53
【问题描述】:
我有一些 3-4 个存储过程——如果需要,我可以修改它们——它们使用 RAISERROR 来通知我的应用程序数据库端的一些致命错误。其中一些存储过程从 C# 端使用ExecuteNonQuery 执行,而其他存储过程使用ExecuteReader 执行。目前,我将这些命令包装在一个 try { ... } catch (SqlException ThisSqlException) { ... } 块中,但问题是在我必须分别处理的至少两种情况下会引发此异常:
1) 连接本身错误,或错误或类型不匹配的参数;和
2) 每当我明确使用RAISERROR 时出现的错误。
由于这是一个 WCF 应用程序,我必须根据异常的性质(无论是否由于 RAISERROR 命令)向客户端应用程序返回不同的反馈。那么,我该如何区分这两种情况呢?
【问题讨论】:
标签: c# wcf sql-server-2005 sqlexception raiserror