Mysql存储过程异常抓捕和异常信息捕获
直接上代码
create procedure testErrorMessage(
INOUT code char, //输出的错误编号
INOUT message text //输出错误文本信息
)
begin
DECLARE EXIT HANDLER FOR SQLEXCEPTION //①
BEGIN
GET DIAGNOSTICS CONDITION 1 //②
code = RETURNED_SQLSQLSTATE,message = MASSAGE_TEXT; //③
END;
//假装这里是存储过程逻辑代码,如果运行出错,上面抓捕异常。
end
代码解析:
① DECLARE EXIT HANDLER FOR SQLEXCEPTION //异常声明处理语法
② GET DIAGNOSTICS CONDITION 1 //这段代码的含义是,从mysql错误缓存区读取第一条错误信息。
③ code = RETURNED_SQLSQLSTATE,message = MASSAGE_TEXT; //读取出sql出错编码,将其赋值给我们定义的错误编码变量code。读取sql出错的错误文本信息,将其赋值给我们第一的错误文本变量message。