mysql异常处理得不到异常信息_异常处理 · MySQL5.7文档 · 看云

## 定义条件

作用 : 特定条件需要特定处理,这些条件可以联系到错误,以及子程序中的一般流程控制.定义条件是事先定义程序执行过程中遇到的问题,处理程序定义了在遇到这些问题时应当采取的处理方式,并且保证存储过程或函数在遇到警告或错误时才能继续执行.这样可以增强存储过程程序处理问题的能力,避免程序异常停止运行.

```sql

declare 条件的名称 condition for [条件的类型...];

```

参数介绍 - 条件的类型

|错误类型|介绍|

|-|-|

|sqlstate['value']|匹配指定5个字符串错误值|

|MySQL_error_code|匹配数值类型错误代码|

## 定义处理程序

```sql

declare 错误处理方式 handler for 错误类型[,...] 程序语句段;

```

### 参数介绍

+ 错误处理方式 :

|错误处理方式|介绍|

|-|-|

|continue|表示遇到错误不处理|

|exit|表示遇到错误马上退出|

|undo|表示遇到错误撤回之前操作|

+ 错误类型 :

|错误类型|介绍|

|-|-|

|sqlstate['value']|匹配指定5个字符串错误值|

|自定义条件名称|表示declare coneition定义的错误条件名称|

|sqlwarning|匹配所有以01开头的sqlstate错误代码|

|not found|匹配所有以02开头的sqlstate错误代码|

|sqlexception|匹配所有没有被sqlwarning或not found捕获的sqlstate错误代码|

|MySQL_error_code|匹配数值类型错误代码|

+ 程序语句段 : 表示在遇到定义的错误时,需要执行的存储过程或函数

### 例子

#### 捕获sqlstate['value']

```sql

declare continue handler for sqlstate '42S02' set @info='错误信息';

```

#### 捕获mysql_error_code

```sql

declare continue handler for 1146 set @info='错误信息';

```

#### 先定义再捕获

```sql

declare uuphp_error condition for 1146;

declare continue handler for uuphp_error set @info='错误信息';

```

#### 使用sqlwarning

```sql

declare exit handler for sqlwarning set @info='错误信息';

```

#### 使用not found

```sql

declare exit handler for not found set @info='错误信息';

```

#### 使用sqlexception

```sql

declare exit handler for sqlexception set @info='错误信息';

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值