2013-02-23 31 views
0

我一直在試圖編寫一個腳本來測試是否可以連接到某個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

回答

4

嘗試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