python - 如何在python中对mysql连接进行异常处理
问题描述
我是 python 新手,我想知道如何以正确的方式在 python 中进行异常处理。我想为数据库连接失败引发异常。我也不想在 try 中包含所有代码行块。我想引发连接失败异常。如何做到这一点?
try:
conn = MySQLdb.connect(host="mysql", user="root", passwd="password"
, db="database")
mycursor = conn.cursor()
query = "INSERT INTO table1(col1,col2,col3)VALUES(%s,%s,%s)"
val = (x,y,z)
mycursor.execute(query, val)
conn.commit()
conn.close()
print("Data inserted to db")
except Exception as ex:
print(ex)
解决方案
conn = MySQLdb.connect(host="mysql", user="root", passwd="password"
, db="database")
mycursor = conn.cursor()
query = "INSERT INTO table1(col1,col2,col3)VALUES(%s,%s,%s)"
try:
mycursor.execute(query, val)
except MySQLdb.Error, e:
try:
print "MySQL Error [%d]: %s" % (e.args[0], e.args[1])
return None
except IndexError:
print "MySQL Error: %s" % str(e)
return None
except TypeError, e:
print(e)
return None
except ValueError, e:
print(e)
return None
finally:
mycursor.close()
conn.close()
推荐阅读
- python - 熊猫数据框行的成对相等
- angular - Angular 5 ng-select 如何将两个值添加到'bindLabel'?
- ldap - NiFi:LDAP身份验证问题
- selenium - 如何在详细的黄瓜报告中附加屏幕截图 (mkolisnyk)
- node.js - Koa.js:集中式错误处理
- ios - 如何在 iOS 中显示已安装的音乐播放器选项?
- html - 我可以在一个 div Angular 4 中使用 2 ngClass
- java - 如何在 JAVA 中更新/替换 Kubernetes 的部署
- spring - 如何在spring boot中验证rest url?
- python - 如何为 pyplot 散点图中的标记提供自定义 RGB 颜色?