最近在做 spring boot 架构,调用 mysql(5.8)存储过程, 尽量希望存储过程异常处理完善些。这样就可以大大提升架构响应速度以及健壮性。
主要的关键点如下:
- mysql 存储过程异常处理
- 捕获异常信息,mysql 内部错误号以及错误文本
话不多说,请看如下代码:
BEGIN
DECLARE mysql_error_code CHAR(5) DEFAULT '00000';
DECLARE mysql_error_msg varchar(500);
/*异常处理机制*/
DECLARE EXIT HANDLER FOR SQLWARNING,NOT FOUND,SQLEXCEPTION
begin
GET DIAGNOSTICS CONDITION 1
mysql_error_code = RETURNED_SQLSTATE, mysql_error_msg = MESSAGE_TEXT;
set prm_code = 'E';
set prm_message =concat('exe P_APP_GetVersion failery! reason:',' mysql_error_code:',mysql_error_code,',mysql_error_msg:',mysql_error_msg,'.');
end;
set prm_code = 'S';
set prm_message = 'exe P_APP_GetVersion sucessfully!';
/*实际上这个表不存在*/
select * from appversison;
END
总结:百度上关于这么详细的异常处理不是很多,大多数都是一知半解。最后还是在 mysql 官方文档上找到了答案!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于