存储过程捕捉异常

BEGIN TRY---------开始捕捉异常
    BEGIN TRANSACTION----------------------开始事务
		EXEC ProcName @ProcParam-----------执行存储过程[报错,则错误信息会被捕捉]
    COMMIT --------------------------------提交事务
END TRY-----------结束捕捉异常

BEGIN CATCH------有异常被捕获
     IF @@TRANCOUNT > 0---------------------判断有没有事务
     	BEGIN
         	ROLLBACK -----------------------回滚事务
     	END
    -- Print error information.
    PRINT 'ErrorNumber : ' +CONVERT(varchar(50), ERROR_NUMBER()) 
    PRINT 'ErrorSeverity : ' + CONVERT(varchar(5), ERROR_SEVERITY()) 
    PRINT 'ErrorState :' + CONVERT(varchar(5), ERROR_STATE()) 
    PRINT 'ErrorProcedure :' + ISNULL(ERROR_PROCEDURE(), '-') 
    PRINT 'ErrorLine :' + CONVERT(varchar(5), ERROR_LINE());
    PRINT 'ErrorMessage :' + ERROR_MESSAGE();
END CATCH--------结束异常处理

实例应用:PHP 代码捕捉存储过程错误信息


$sp = " BEGIN TRY---------开始捕捉异常
	        BEGIN TRANSACTION------------------开始事务
	            exec $proc_ame $param
	        COMMIT ----------------------------提交事务
     	END TRY-----------结束捕捉异常

		BEGIN CATCH------有异常被捕获
		   IF @@TRANCOUNT > 0---------------------判断有没有事务
		       BEGIN
		           ROLLBACK ----------------------回滚事务
		       END
		    -- 返回错误信息
		   SELECT 'ErrorProcedure :' + ISNULL(ERROR_PROCEDURE(), '-') + 'ErrorMessage :' + ERROR_MESSAGE() as ErrMessage
		END CATCH";
       
$stmt = $this->notORM->connection->prepare($sp);
$stmt->execute();

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
if(isset($result[0]['ErrMessage'])){
	throw new \PDOException($result[0]['ErrMessage'], 500);
}
return $result;

php 捕捉到存储过程错误信息如下:
在这里插入图片描述
存储过程 直接执行错误信息如下:
在这里插入图片描述

TRY…CATCH 使用下列错误函数来捕获错误信息:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值