首页 存档 技术 查看内容

关于MySQL异常捕捉那些事儿系列四

2018-3-30 13:00 |来自: 互联网 406 0

摘要: 本系列文章主要介绍如何捕捉处理MySQL异常以及实战演练展示,参考于MySQL5.6官方文档 和 ZHDBA官网之MySQL数据库的例外处理测试。 7 异常捕捉实战演练 A. 特别说明 ① 以定义异常处理中的三种处理方式CONTINUE/EXIT ...

本系列文章主要介绍如何捕捉处理MySQL异常以及实战演练展示,参考于MySQL5.6官方文档 ZHDBA官网之MySQL数据库的例外处理测试

7 异常捕捉实战演练

A. 特别说明

① 以定义异常处理中的三种处理方式CONTINUE/EXIT/UNDO为不同点,演示如何定义异常和异常处理;

② 实战演练以存储过程为示例;

③ 示例中的异常触发条件为:SELECT * FROM t;在执行示例的数据库中并不存在t表。


B. 实战演练

① 异常处理方式为CONTINUE

  • 存储过程示例

  • 存储过程结果

  • 结果分析

callsp_test的结果中包含三条语句,第一条语句为SELECT b的输出;然后‘SELECT* FROM t’触发错误编号为1146的异常,此时存储过程中存在对错误编号为1146的异常处理,所以第二条语句为异常处理语句块中SELECT a的输出;由于错误编号为1146的异常处理为CONTINUE,故异常处理后,回到触发异常的下一个语句位置,继续执行,所以第三条语句为SELECT c的输出。


② 异常处理方式为EXIT

  • 存储过程示


  • 存储过程结果

  • 结果分析

call sp_test的结果中包含两条语句,第一条语句和第二条语句的输出与‘异常处理为CONTINUE’的第一条和第二条语句输出分析一致;由于错误编号为1146的异常处理为EXIT,故异常处理完毕后,跳出当前程序,即该示例中SELECT c并不会被执行。


③ 异常处理方式为UNDO

  • 存储过程示例

  • 存储过程结果

  • 结果分析

由于异常处理UNDO方式不被支持,故创建时会报错。

本文作者:Wing


中华数据库行业协会:中华数据库行业协会由来自北京、杭州、上海、深圳等地的技术精英们联合组织成立。协会致力于数据库开源领域的各项资源的有效整合与分享,为开源社区作出相关的贡献,为业界提供一个纯技术交流的优质平台。


如果您喜欢这篇文章,请点击右上角“...”将本文分享给您的朋友。


搜索微信号“zhdba2014”,或扫描二维码,关注中华数据库行业协会,分享中华数据库行业协会最新动态及更多的互联网信息。

本文转载自:微信公众账号 - zhdba,版权归原作者所有!

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部