如何捕获mysql触发器和存储过程中的任何异常?

如何捕获mysql触发器和存储过程中的任何异常?,mysql,stored-procedures,triggers,Mysql,Stored Procedures,Triggers,我一直在尝试捕捉mysql异常,特别是对于触发器和存储过程。我们如何从mysql端捕捉异常?。我仍然没有找到任何解决办法。谢谢你的帮助 谢谢 Hitesh检查DECLARE处理程序的语法 此外,如果您试图调试SP,这可能会对您有所帮助: 因为这是我在搜索触发器中的MySQL错误处理时提到的,所以我想我应该分享我的MySQL 5.5解决方案+ 我原来的帖子:复制如下 因为这篇文章是在我搜索MySQL触发器中的错误处理时出现的,所以我想与大家分享一些知识 如果出现错误,可以强制MySQL使用,但如

我一直在尝试捕捉mysql异常,特别是对于触发器和存储过程。我们如何从mysql端捕捉异常?。我仍然没有找到任何解决办法。谢谢你的帮助

谢谢
Hitesh

检查DECLARE处理程序的语法

此外,如果您试图调试SP,这可能会对您有所帮助:


因为这是我在搜索触发器中的MySQL错误处理时提到的,所以我想我应该分享我的MySQL 5.5解决方案+

我原来的帖子:复制如下

因为这篇文章是在我搜索MySQL触发器中的错误处理时出现的,所以我想与大家分享一些知识

如果出现错误,可以强制MySQL使用,但如果不将其指定为类SQLEXCEPTION,则不会发生任何事情,因为并非所有的SQLState都被认为是坏的,即使这样,您也必须确保是否有任何嵌套的BEGIN/END块

或者,在触发器中声明一个退出处理程序并重新签名异常,这可能更简单

CREATE TRIGGER `my_table_AINS` AFTER INSERT ON `my_table` FOR EACH ROW
BEGIN
    DECLARE EXIT HANDLER FOR SQLEXCEPTION
        RESIGNAL;
    DECLARE EXIT HANDLER FOR SQLWARNING
        RESIGNAL;
    DECLARE EXIT HANDLER FOR NOT FOUND
        RESIGNAL; 
    -- Do the work of the trigger.
END
如果在你的身体里发生了一个错误,它会被扔回到顶部,然后带着一个错误退出。这也可以用于存储过程等

这适用于任何版本5.5+