跳转至

程序出错的处理机制

定义条件

  • 定义条件:事先定义程序执行过程中可能遇到的问题
  • 为MySQL中的错误码命名
    • 可以使用数值类型的错误代码MySQL_Error_code
    • 可以使用长度为5的字符串类型的错误代码Sqlstate_value
      DECLARE error_name FOR CONDITION MySQL_Error_code;
      DECLARE error_name FOR CONDITION SQLSTATE 'Sqlstate_value';
      

处理程序

  • 处理程序:在遇到问题时应当采取的处理方式,并且保证存储过程或函数在遇到警告或错误时能继续执行
    • 增强存储程序处理问题的能力,避免程序异常停止运行
  • 语法
    DECALRE 处理方式 HANDLER FOR 错误类型 处理语句;
    
  • 处理方式:
    • CONTINUE:继续执行
    • EXIT:退出存储过程或存储函数
    • UNDO
  • 错误类型:
    • SQLSTATE 'Error_value'
    • MySQL_error_code
    • 错误名称:定义的错误条件名称
    • SQLWARNING:匹配所有以01开头的SQLSTATE语句
    • NOT FOUND:匹配所有以02开头的SQLSTATE语句
    • SQLEXCEPTIONSQLWARNING+NOT FOUND
  • 处理语句:如果出现上述条件之一则采取相应的处理方式
    • 可以是简单语句
    • 也可以是复杂的BEGIN~END的符合语句