如何防止Python退出数据库连接失败?

问题描述:

我一直在试图编写一个脚本来测试是否可以连接到某个mysql数据库。如何防止Python退出数据库连接失败?

如果有可能,应该给出一个“OK”输出,如果不是,那么应该说“FAIL”并且进行操作。

当连接可用时,它工作正常。 但是,当连接失败连接脚本被退出给了一个错误

_mysql_exceptions.OperationalError: (1045, "Access denied for user 'yoda'@'localhost' (using password: YES)") 

但这从脚本执行过程中的其余

我称它像是

if not db.connect(UnivConf['DBHT'],UnivConf['DBUN'],UnivConf['DBPW'],UnivConf['DBDB']) 

我怎么能干涉解决此问题并获得脚本继续运行而不会退出

+4

为什么不把它放在'try ... except'区块内? – ATOzTOA 2013-02-23 18:02:21

+1

为什么脚本应该继续?如果你没有有效的数据库连接,那么以后的任何其他数据库代码都会失败。基本上“我的车爆炸了,我怎么能继续在高速公路上行驶?” – 2013-02-23 18:02:55

+0

我需要定期记录数据库服务器状态, – BMC 2013-02-23 18:09:15

尝试try

try: 
    if not db.connect(UnivConf['DBHT'],UnivConf['DBUN'],UnivConf['DBPW'],UnivConf['DBDB']) 
     # Do something 

except _mysql_exceptions.OperationalError as e: 
    print "Caught an exception : " + str(e.message) 
    print "Something blah blah..." 

finally: 
    print "Done" 
+0

为了完整性,我会添加'else:' – 2013-02-23 18:12:29

+0

@JakubM。为了你的评论的完整性,你会在'else'中输入什么(我真的很想知道:o) – heltonbiker 2013-02-23 18:13:42

+0

@heltonbiker大声笑......谢谢你回答我:) – ATOzTOA 2013-02-23 18:18:07