【发布时间】:2011-04-22 22:50:08
【问题描述】:
我正在尝试在 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 对其进行测试。
【问题讨论】:
-
您究竟想如何通知用户?通过电子邮件或短信?因为可以连接,但你需要具体。
-
你为什么不直接
print这个消息? -
@sje397 关键是我希望能够测试单元测试是否已抛出警告。如果我只是将消息打印出来,我无法在 unittest 中使用 assertRaises 来做到这一点。
标签: python exception error-handling warnings