使用 IN 子句捕获特定的异常

如果 SQL 错误代码或 ISAM 错误代码与错误号列表中的异常代码相匹配,则会俘获错误。在错误列表中的搜索重左边开始,并在搜索到第一个匹配时停止。可以使用没有 IN 子句的 ON EXCEPTION 语句和具有 IN 子句的一个或多个 ON EXCEPTION 语句的组合。当出现错误时,数据库服务器搜索捕获特殊错误代码的 ON EXCEPTION 语句的最后一个声明。
CREATE PROCEDURE ex_test()
        DEFINE error_num INT;
        ...
        ON EXCEPTION SET error_num
        -- action C
        END EXCEPTION
        ON EXCEPTION IN (-300)
        -- action B
        END EXCEPTION
        ON EXCEPTION IN (-210, -211, -212) SET error_num
        -- action A
        END EXCEPTION
在上一示例中的语句序列总结为:
  1. 测试是否有错误。
  2. 如果出现错误 -210-211 或 -212 ,则采取操作 A
  3. 如果出现错误 -300 ,则采取操作 B
  4. 如果出现任何其它错误,则采取操作 C