MySql儲存過程捕獲異常回滾

2021-08-20 20:47:54 字數 663 閱讀 9370

drop procedure if exists pro_test;

create procedure pro_test

(para_a varchar(50),

para_b varchar(50)

)begin

declare result_code integer default 0; -- 定義返回結果並賦初值0

declare continue handler for sqlexception set result_code=1; -- 在執行過程中出任何異常設定result_code為1

declare continue handler for not found set result_code = 2; -- 如果表中沒有下一條資料則置為2

start transaction; -- 開始事務

/** 這裡寫具體的業務處理...

* 業務處理過程中可以根據實際情況自定義result_code

*/if result_code = 1 then -- 可以根據不同的業務邏輯錯誤返回不同的result_code,這裡只定義了1和0

rollback; 

else 

commit; 

end if;

select result_code;

end ;

Spring事務異常回滾,捕獲異常不丟擲就不會回滾

預設spring事務只在發生未 獲的 runtimeexcetpion時才回滾。spring aop 異常捕獲原理 被攔截的方法需顯式丟擲異常,並不能經任何處理,這樣aop 才能捕獲到方法的異常,才能進行回滾,預設情況下aop只捕獲runtimeexception的異常,但可以通過 配置來捕獲特定的...

Spring事務異常回滾,捕獲異常不丟擲就不會回滾

下面這種情況,使用了catch捕獲了異常,spring事務 不會發生回滾 try catch exception e 預設spring事務只在發生未 獲的 runtimeexception 時才回滾。springaop 異常捕獲原理 被攔截的方法需顯式丟擲異常,並不能經任何處理,這樣aop 才能捕獲...

Spring事務異常回滾,捕獲異常不丟擲就不會回滾

預設spring事務只在發生未 獲的 runtimeexcetpion時才回滾。spring aop 異常捕獲原理 被攔截的方法需顯式丟擲異常,並不能經任何處理,這樣aop 才能捕獲到方法的異常,才能進行回滾,預設情況下aop只捕獲runtimeexception的異常,但可以通過 配置來捕獲特定的...