我正在處理如何在Python中引發警告而不必讓程序崩潰/停止/中斷的問題。如何在不停止(中斷)程序的情況下在Python中發出警告?
我使用以下簡單的函數,只檢查用戶傳遞給它的非零數字。如果用戶傳遞零,程序應警告用戶,但正常繼續。它應該像下面的代碼一樣工作,但應該使用類Warning(),Error()或Exception(),而不是手動輸出警告。
def isZero(i):
if i != 0:
print "OK"
else:
print "WARNING: the input is 0!"
return i
如果我使用下面的代碼並將0傳遞給該函數,程序崩潰並且該值永遠不會返回。相反,我想讓程序正常繼續,只是通知用戶他將0傳遞給函數。
def isZero(i):
if i != 0:
print "OK"
else:
raise Warning("the input is 0!")
return i
的一點是,我希望能夠測試警告已通過拋出單元測試測試它。如果我只是簡單地打印這條消息,我不能用unittest中的assertRaises來測試它。
謝謝,托馬斯
究竟是如何做的,你要通知用戶?通過電子郵件或短信?因爲可以被連接起來,但你需要具體。 – aaronasterling 2010-10-08 15:05:07
你爲什麼不直接'打印'信息? – sje397 2010-10-08 15:06:32
@ sje397關鍵是我希望能夠測試一個警告已經被unittest測試過。如果我只是簡單地打印出來的信息,我不能用unittest中的assertRaises來做到這一點。 – 2010-10-08 15:16:56