MSSQL 2005/2008 中的错误处理机制
begin try
--SQL
end try
begin catch
--sql (处理出错动作)
end catch
我们将可能会出错的sql 写在begin try...end try 之间,若出错,刚程序就跳到紧接着的begin try...end try 的beign catch...end catch
中,执行beign catch...end catch错误处理SQL。try..catch 是可以嵌套的。
在begin catch ...end catch中我们可以利用系统提供的下面四个函数得到出错信息:
error_number 返回错误代码
error_serverity 返回错误的严重级别
error_state 返回错误状态代码
error_message 返回完整的错误信息
ERROR_PROCEDURE() AS ErrorProcedure, 返回存储过程名称
ERROR_LINE() AS ErrorLine, 返回出错的行
上面的四个函数在同一个begin catch ...end catch可以在多次使用,值是不变的。
下面是一个简单的小例子。
begin try select 2/0 end try begin catch select error_number() as error_number , error_message() as error_message, error_state() as error_state, error_severity() as error_severity end catch
结果:
-----
error_number error_message error_state error_severity
8134 遇到以零作除数错误。 1 16