捕捉RAISERROR异常
来源:互联网 发布:windows资源管理器反复 编辑:程序博客网 时间:2024/06/08 18:56
在写存储过程时,我们常常会使用RAISERROR语句来抛出一个自定义异常。
如何在.net程序中来捕捉这个异常。framework类库为我们提供了一个SqlException异常类型,该类型是当 SQL Server 返回警告或错误时引发的异常。
一个存储过程中可以有多个RAISERROR语句来抛出的异常,如何捕捉到具体的哪一个?
RAISERROR语句中有一个参数state,MSDN具体定义如下:
0 到 255 之间的整数。 负值或大于 255 的值将生成错误。
存储过程
CREATE PROC PROC_NAME
BEGIN
--一般的异常,state参数的值为1
IF(....)
BEGIN
SET @ErrorInfo = '';
RAISERROR(@ErrorInfo, 16, 1) WITH NOWAIT;
RETURN;
END
--要捕捉特殊处理的异常,可以设置一个不同的state参数 例如:66
IF(....)
BEGIN
SET @ErrorInfo = '';
RAISERROR(@ErrorInfo, 16, 66) WITH NOWAIT;
RETURN;
END
END
GO
程序中的处理
try
{
}
catch (System.Data.SqlClient.SqlException e)
{
//如果是存储过程名称是PROC_NAME,而且State是数据库中设置的一个值 如:66
//则该异常就是我们需要特殊处理的一个异常
if (e.Procedure.Equals("PROC_NAME") && e.State == 66)
{
//特殊处理......
}
}
catch (Exception e)
{
}
- 捕捉RAISERROR异常
- RAISERROR
- raiserror
- raiserror
- RAISERROR
- 异常捕捉
- 异常捕捉
- 捕捉异常
- 异常捕捉
- 捕捉异常
- 异常捕捉
- SQL Server自定义异常的使用raiserror
- 捕捉异常 (Visual C#)
- delphi异常信息捕捉
- 捕捉线程的异常
- 异常捕捉工具[转]
- 进程异常的捕捉
- 什么时候该捕捉异常
- 小试Annotation来配置DWR
- java-日期操作-获得某月的第一天和最后一天
- 网页在ie10显示不正常解决方法
- C# FTP,GetResponse(),远程服务器返回错误:(550) 文件不可用(例如,未找到文件,无法访问文件)
- 关于程序员的一年——回顾2012
- 捕捉RAISERROR异常
- 打包软件 NSIS 简介
- zendstudio文件编码修改问题
- Printf的格式
- .net 将yyyyMMDDHHmmss转为datetime
- Eclipse:Android开发中如何查看System.out.println的输出内容
- hdu1272小希的迷宫
- linux下开源软件
- 纯JSP+DWR实现三级联动下拉选择菜单