我试图在不使程序崩溃/停止/中断的情况下在 Python 中发出警告。
我使用以下简单函数来检查用户是否向其传递了一个非零数字。如果是这样,程序应该警告他们,但会照常继续。它应该像下面的代码一样工作,但应该使用类 Warning()
, Error()
或 Exception()
而不是手动打印警告。
def is_zero(i):
if i != 0:
print "OK"
else:
print "WARNING: the input is 0!"
return i
如果我使用下面的代码并将 0 传递给函数,程序就会崩溃并且永远不会返回该值。相反,我希望程序正常继续,只通知用户他将 0 传递给了函数。
def is_zero(i):
if i != 0:
print "OK"
else:
raise Warning("the input is 0!")
return i
我希望能够测试是否已通过 unittest 抛出警告对其进行测试。如果我只是打印消息,我无法在单元测试中使用 assertRaises 对其进行测试。
原文由 Tomas Novotny 发布,翻译遵循 CC BY-SA 4.0 许可协议
你不应该
raise
警告,你应该使用warnings
模块。通过提高它你会产生错误,而不是警告。