>我有一个SQL过程,在特定情况下会抛出异常:
SIGNAL EMPTY_REQ_ATTR SET message_text = 'my mega error message';
此过程有一个退出处理程序:
DECLARE EMPTY_REQ_ATTR CONDITION;
DECLARE EXIT HANDLER FOR EMPTY_REQ_ATTR RESIGNAL EMPTY_REQ_ATTR;
此 SQL 过程在另一个 SQL 过程中调用,我尝试像这样捕获此异常:
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
errors = SELECT 400 AS http_code, ::SQL_ERROR_MESSAGE AS message FROM dummy;
END;
但是在调试中,我看到退出处理程序仅在嵌套过程中工作。DECLARE EXIT HANDLER FOR SQLEXCEPTION
处的断点不起作用。
据我了解,您已经在嵌套过程中捕获了此异常,并且异常没有再次引发。我认为,您可以从嵌套过程中删除异常处理程序或从中抛出异常。