文章内容

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.ErrorMySQLdb.Warning的异常信息传递给别名e,之后打印出e的信息。

当然也可以保存到数据库作为统一处理,在此处并没有这么做。


参考资料:

1、MySQLdb Package

分享到:

发表评论

评论列表