python mysql异常处理_python-处理PyMySql异常-最佳做法
我的问题是关于异常最佳实践.
我将针对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异常-最佳做法相关推荐
- python自定义异常处理_Python 自定义异常
Python 自定义异常 Python有许多内置的异常,当其中的某些错误出现时,它们会强制您的程序输出错误. 但是,有时您可能需要创建符合您目的的自定义异常处理. 在Python中,用户可以通过创建新 ...
- python mysql 内存_Python将系统内存使用量写入mysql数据库
1.前提创建数据库和表格式 [root@python ~]# mysql -uroot -pcentos mysql> create database memory; mysql> use ...
- python mysql捕获异常_python mysql无法捕获异常
这是我的密码self.conn = MySQLdb.connect(user='SomeUser', passwd='MySecruitPassword', db='scrapy', host='My ...
- python 忽略错误_python如何忽略异常
python一般使用try-except-处理异常.try: #可能会出现异常的代码,放在try下 code1 #如果try内部任意一行代码出现异常,# 直接跳转至exce ...
- python mysql实例_Python操作Mysql实例代码
本文介绍了Python操作MYSQL.执行SQL语句.获取结果集.遍历结果集.取得某个字段.获取表字段名.将图片插入数据库.执行事务等各种代码实例和详细介绍,代码居多,是一桌丰盛唯美的代码大餐. 实例 ...
- python mysql实例_Python 操作MySQL详解及实例
使用Python进行MySQL的库主要有三个,Python-MySQL(更熟悉的名字可能是MySQLdb),PyMySQL和SQLAlchemy. Python-MySQL资格最老,核心由C语言打造, ...
- python mysql实例_Python使用MySQL数据库的方法以及一个实例
使用环境:Windows+python3.4+MySQL5.5+Navicat 一.创建连接 1.准备工作,想要使用Python操作MySQL,首先需要安装MySQL-Python的包,在Python ...
- python mysql单元测试_python测试mysql写入性能完整实例
本文主要研究的是python测试mysql写入性能,分享了一则完整代码,具体介绍如下. 测试环境: (1) 阿里云服务器centos 6.5 (2) 2G内存 (3) 普通硬盘 (4) mysql 5 ...
- python编写异常处理_Python 简明教程 --- 23,Python 异常处理
要么做第一个,要么做最好的一个. 目录 我们在编写程序时,总会不自觉的出现一些错误,比如逻辑错误,语法错误和一些其它的运行时错误等. 逻辑错误: 这种错误不会导致程序崩溃,它不容易被发现,只有在执行结 ...
最新文章
- [转]PHP用mysql数据库存储session
- map和struct的多重嵌套
- android唤醒屏幕并解锁
- mysql结果以字符串显示不出来,mysql – 为什么SQl MATCH AGAINST找不到结果中只有3个字符的结果?...
- different behavior dialog popup display no
- 有奶瓶的linux系统,用U盘启动BEINI(奶瓶)系统
- 环信SDK 踩坑记webIM篇(二)
- 问题 F: Search Problem (III)
- LeetCode For SQL 184. 部门工资最高的员工 (分组 from嵌套)
- Matplotlib:plt.tight_layout()主标题(plt.suptitle)被覆盖
- 【业界】百度NLP十年技术积累,最新发布5款产品,公布两大计划
- iphone7无服务_iPhone 7 系列被召回?设计缺陷...
- 洪湖市计算机软件学校,湖北省教育厅关于公布“第十届湖北省中小学电脑制作作品评选”暨“第四届湖北省中小学信息技术创新与实践活动”获奖名单的通知...
- 基因重组-冲刺日志(第十天)
- 树莓派chromium代理设置
- kali linux安全牛教程,Kali Linux渗透测试(安全牛)最新完整版教程160G
- oracle正则表达式匹配字母,oracle正则表达式函数 匹配
- 2021年美妆护肤行业电商营销报告
- 一份风控模型性能提升秘籍奉上|附视频+实操(详版)
- 【Java】练习题库 单选题
热门文章
- 实验十:图形用户界面设计
- 移动端UL列表无法平滑向下滚动问题
- 【读书笔记】【独立思考】2018-03-14
- 如何让shell脚本自杀
- 选择 Java 编写 iOS 与 安卓 App的八大理由
- web工程 java中获取工程文件路径
- STM32Cube_FW_F1_V1.0.0固件库学习(四)外部中断 中
- 解压并安装protobuf库_golang-leaf服务器-protobuf的安装
- php 还原html,可恢复代码的HTML UI元素PHP
- Python+matplotlib绘制多门课程学生成绩分布饼状图