【发布时间】:2014-07-18 22:55:00
【问题描述】:
我是 sybase 的新手。经过一番研究,我知道以下是在 sybase 存储过程中处理错误/异常的正确方法。
CREATE PROCEDURE dbo.sp_testErrorHandling (@age varchar(20))
AS
BEGIN
DECLARE @myerr int
BEGIN TRANSACTION mytrans
DELETE FROM TestStoredProc where Name='Z'
IF @@error<>0 BEGIN SELECT @myerr=@@error GOTO failed END
DECLARE @result int
EXECUTE @result = 5/0 /* throws an exception */
IF @@error<>0 BEGIN SELECT @myerr=@@error GOTO failed END
COMMIT TRANSACTION mytrans
RETURN 0
failed:
ROLLBACK TRANSACTION mytrans
return @myerr
END
我想,这个存储过程会返回对应于异常划分的错误代码为零。但实际上它正在抛出异常。请帮助我理解这种行为。 问候, 阿尼尔班 阿尼尔班
【问题讨论】:
标签: exception stored-procedures error-handling sybase