文章内容
2019/3/4 18:04:40,作 者: 黄兵
MySQLdb 异常处理
程序在生产环境中运行,具体有没有异常,有没有什么问题,都需要及时了解。
生产环境中外部的多变,有一些是在编码过程中很难预料到的,所以需要通过异常捕获,来了解程序的运行状况。
在数据库保存数据当中,会产生很多异常:数据长度超限、网络异常、用户恶意提交、字符问题等都会产生异常。
为了捕捉在使用MySQLdb的过程中产生的一些异常与警告,通用代码如下:
# SQL 插入语句
sql = "INSERT INTO visit_time_line_original(time, ip, url,user_agent) \
VALUES (%s, \'%s\', '\%s\', '\%s\')" % \
(item, get_ip, get_url, get_user_agent)
try:
# 执行sql语句
cur.execute(sql)
# 避免这个错误: Commands out of sync; you can't run this command now
cur.close()
# 提交到数据库执行
conn_mysql.commit()
except (MySQLdb.Error, MySQLdb.Warning) as e:
print(e)
# 发生错误时回滚
conn_mysql.rollback()将MySQLdb.Error和MySQLdb.Warning的异常信息传递给别名e,之后打印出e的信息。
当然也可以保存到数据库作为统一处理,在此处并没有这么做。
参考资料:
评论列表