1

我有一个在特定情况下引发异常的 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不工作。

4

1 回答 1

0

据我了解,您已经在嵌套过程中捕获了此异常,并且没有再次引发异常。我认为,您可以从嵌套过程中删除异常处理程序或从中抛出异常。

于 2018-05-28T06:40:37.957 回答