- 论坛徽章:
- 1
|
使用mybatis做orm框架,在mysql中添加了一个存储过程,用到了事务,并且存储过程里面添加了异常处理的handler,如果捕获异常,将直接rollback,并退出,部分代码如下:- begin
- declare v_count int;
- declare v_status varchar(50);
- declare exit handler for sqlexception
- begin
- set out_result='SYSTEM EXCEPTION, ROLL BACK';
- rollback;
- end;
- declare exit handler for sqlwarning
- begin
- set out_result='SYSTEM WARN, ROLL BACK';
- rollback;
- end;
- start transaction;
- select count(ssoid) into v_count from userinfo where ssoid=p_userId;
- /*if v_count <= 0 then */
- insert into userinfo(ssoid, balance) values(p_userId, 0);
- /*end if; */
- ;
- commit;
-
- end
复制代码 insert由于唯一索引,报异常,进入declare exit handler for sqlexception执行,并返回,但是mybatis并不能捕获这个异常,如果上线,那我岂不是看不到完整的异常栈信息,这里有其他处理办法吗? |
|