如何捕捉和MySQL中再扔掉所有错误(How to catch and re-throw all e

2019-08-02 01:13发布

我似乎无法找到任何地方如何捕捉并重新抛出可能发生在程序的任何错误或警告。

我要的是做以下的语法:

create procedure myProcedure()
  begin

      declare exit handler for ANYTHING_WRONG_THAT_CAN_BE_CAUGHT_WARNINGS_INCLUDED
      begin
          rollback;
          RE_THROW THE_THING_THAT_WAS_CAUGHT;
      end;

      start transaction;
         -- do some stuff
      commit;
  end; //

原因是,我想迫使错误或警告回滚,但离开它的客户端来决定如何处理特定错误做。

全盖区域是我不知道要放什么东西的部分。

谢谢你的帮助!

编辑-------

因为我已经学会了它不可能做什么,我都问:'(。

相反,我有任何出错,并用下面的代码一个错误:

declare exit handler for sqlwarning, sqlexception begin
    rollback;
    call error();
end;

(误差()不存在)

Answer 1:

捕获所有SQL异常,使用方法:

DECLARE EXIT HANDLER FOR SQLEXCEPTION

SQLWARNINGS可以用来捕捉警告也。

里面的异常处理程序,以提高刚赶上了错误或警告,使用方法:

RESIGNAL

请参阅RESIGNAL语句的文档:

http://dev.mysql.com/doc/refman/5.5/en/resignal.html

这可从MySQL 5.5



文章来源: How to catch and re-throw all errors in MySQL