首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql2005中catch到的异常,怎么返回到应用程序中

2013-02-05 
sql2005中catch到的错误,如何返回到应用程序中?mssql 2005中提供了try catch ,在try 块中发生的错误,会被c

sql2005中catch到的错误,如何返回到应用程序中?
mssql 2005中提供了try catch ,在try 块中发生的错误,会被catch到,
但现在我发现在catch中把错误捕获后,应用程序中却收不到错误信息了,
导致本来是发生了错误的,但应用程序却报正常的。比如,在c#里调用
一个存储过程,在存储过程中用到try catch,在try块 中发生错误后,catch把错误
捕获到了,导致c#里不知道发生了错误,无法将错误显示给用户看。
请问该如何到catch里的错误再返回到调用的应用程序中呢?
[解决办法]
使用raiserror命令来用户自定义错误返回给程序,或者select error_message()将catch的错误文本返回给程序即可。

楼主请注意,try catch的捕捉语句的层面不是全部错误都能捕获,例如:select * from 不存在的表,try catch是捕获不到的,因为涵盖到解析语句对象的层面,这点请务必注意!
[解决办法]

创建一个表TB
INSERT INTO TB   
select error_message() as 错误消息,
       error_severity() as严重级别,
       error_state() as state;

热点排行