我的问题是关于异常最佳实践.

我将针对PyMySQL的特定案例提出问题,但它通常会处理错误.

我正在使用PyMySQL,在许多可能的例外中,有一种我想以特定方式处理. “重复”异常.

pymysql根据下表将mysql错误映射为python错误:

_map_error(ProgrammingError, ER.DB_CREATE_EXISTS, ER.SYNTAX_ERROR,

ER.PARSE_ERROR, ER.NO_SUCH_TABLE, ER.WRONG_DB_NAME,

ER.WRONG_TABLE_NAME, ER.FIELD_SPECIFIED_TWICE,

ER.INVALID_GROUP_FUNC_USE, ER.UNSUPPORTED_EXTENSION,

ER.TABLE_MUST_HAVE_COLUMNS, ER.CANT_DO_THIS_DURING_AN_TRANSACTION)

_map_error(DataError, ER.WARN_DATA_TRUNCATED, ER.WARN_NULL_TO_NOTNULL,

ER.WARN_DATA_OUT_OF_RANGE, ER.NO_DEFAULT, ER.PRIMARY_CANT_HAVE_NULL,

ER.DATA_TOO_LONG, ER.DATETIME_FUNCTION_OVERFLOW)

_map_error(IntegrityError, ER.DUP_ENTRY, ER.NO_REFERENCED_ROW,

ER.NO_REFERENCED_ROW_2, ER.ROW_IS_REFERENCED, ER.ROW_IS_REFERENCED_2,

ER.CANNOT_ADD_FOREIGN, ER.BAD_NULL_ERROR)

_map_error(NotSupportedError, ER.WARNING_NOT_COMPLETE_ROLLBACK,

ER.NOT_SUPPORTED_YET, ER.FEATURE_DISABLED, ER.UNKNOWN_STORAGE_ENGINE)

_map_error(OperationalError, ER.DBACCESS_DENIED_ERROR, ER.ACCESS_DENIED_ERROR,

ER.CON_COUNT_ERROR, ER.TABLEACCESS_DENIED_ERROR,

ER.COLUMNACCESS_DENIED_ERROR)

我想专门捕获ER.DUP_ENTRY,但我只知道如何捕获IntegrityError,这导致异常捕获中出现多余的情况.

cur.execute(query, values)

except IntegrityError as e:

if e and e[0] == PYMYSQL_DUPLICATE_ERROR:

handel_duplicate_pymysql_exception(e, func_a)

else:

handel_unknown_pymysql_exception(e, func_b)

except Exception as e:

handel_unknown_pymysql_exception(e, func_b)

有没有一种方法可以只捕获ER.DUP_ENTRY呢?

寻找类似的东西:

except IntegrityError.DUP_ENTRY as e:

handel_duplicate_pymysql_exception(e, func_a)

预先感谢您的指导,

python mysql异常处理_python-处理PyMySql异常-最佳做法相关推荐

  1. python自定义异常处理_Python 自定义异常

    Python 自定义异常 Python有许多内置的异常,当其中的某些错误出现时,它们会强制您的程序输出错误. 但是,有时您可能需要创建符合您目的的自定义异常处理. 在Python中,用户可以通过创建新 ...

  2. python mysql 内存_Python将系统内存使用量写入mysql数据库

    1.前提创建数据库和表格式 [root@python ~]# mysql -uroot -pcentos mysql> create database memory; mysql> use ...

  3. python mysql捕获异常_python mysql无法捕获异常

    这是我的密码self.conn = MySQLdb.connect(user='SomeUser', passwd='MySecruitPassword', db='scrapy', host='My ...

  4. python 忽略错误_python如何忽略异常

    python一般使用try-except-处理异常.try:          #可能会出现异常的代码,放在try下 code1      #如果try内部任意一行代码出现异常,# 直接跳转至exce ...

  5. python mysql实例_Python操作Mysql实例代码

    本文介绍了Python操作MYSQL.执行SQL语句.获取结果集.遍历结果集.取得某个字段.获取表字段名.将图片插入数据库.执行事务等各种代码实例和详细介绍,代码居多,是一桌丰盛唯美的代码大餐. 实例 ...

  6. python mysql实例_Python 操作MySQL详解及实例

    使用Python进行MySQL的库主要有三个,Python-MySQL(更熟悉的名字可能是MySQLdb),PyMySQL和SQLAlchemy. Python-MySQL资格最老,核心由C语言打造, ...

  7. python mysql实例_Python使用MySQL数据库的方法以及一个实例

    使用环境:Windows+python3.4+MySQL5.5+Navicat 一.创建连接 1.准备工作,想要使用Python操作MySQL,首先需要安装MySQL-Python的包,在Python ...

  8. python mysql单元测试_python测试mysql写入性能完整实例

    本文主要研究的是python测试mysql写入性能,分享了一则完整代码,具体介绍如下. 测试环境: (1) 阿里云服务器centos 6.5 (2) 2G内存 (3) 普通硬盘 (4) mysql 5 ...

  9. python编写异常处理_Python 简明教程 --- 23,Python 异常处理

    要么做第一个,要么做最好的一个. 目录 我们在编写程序时,总会不自觉的出现一些错误,比如逻辑错误,语法错误和一些其它的运行时错误等. 逻辑错误: 这种错误不会导致程序崩溃,它不容易被发现,只有在执行结 ...

最新文章

  1. [转]PHP用mysql数据库存储session
  2. map和struct的多重嵌套
  3. android唤醒屏幕并解锁
  4. mysql结果以字符串显示不出来,mysql – 为什么SQl MATCH AGAINST找不到结果中只有3个字符的结果?...
  5. different behavior dialog popup display no
  6. 有奶瓶的linux系统,用U盘启动BEINI(奶瓶)系统
  7. 环信SDK 踩坑记webIM篇(二)
  8. 问题 F: Search Problem (III)
  9. LeetCode For SQL 184. 部门工资最高的员工 (分组 from嵌套)
  10. Matplotlib:plt.tight_layout()主标题(plt.suptitle)被覆盖
  11. 【业界】百度NLP十年技术积累,最新发布5款产品,公布两大计划
  12. iphone7无服务_iPhone 7 系列被召回?设计缺陷...
  13. 洪湖市计算机软件学校,湖北省教育厅关于公布“第十届湖北省中小学电脑制作作品评选”暨“第四届湖北省中小学信息技术创新与实践活动”获奖名单的通知...
  14. 基因重组-冲刺日志(第十天)
  15. 树莓派chromium代理设置
  16. kali linux安全牛教程,Kali Linux渗透测试(安全牛)最新完整版教程160G
  17. oracle正则表达式匹配字母,oracle正则表达式函数 匹配
  18. 2021年美妆护肤行业电商营销报告
  19. 一份风控模型性能提升秘籍奉上|附视频+实操(详版)
  20. 【Java】练习题库 单选题

热门文章

  1. 实验十:图形用户界面设计
  2. 移动端UL列表无法平滑向下滚动问题
  3. 【读书笔记】【独立思考】2018-03-14
  4. 如何让shell脚本自杀
  5. 选择 Java 编写 iOS 与 安卓 App的八大理由
  6. web工程 java中获取工程文件路径
  7. STM32Cube_FW_F1_V1.0.0固件库学习(四)外部中断 中
  8. 解压并安装protobuf库_golang-leaf服务器-protobuf的安装
  9. php 还原html,可恢复代码的HTML UI元素PHP
  10. Python+matplotlib绘制多门课程学生成绩分布饼状图