プログラムをクラッシュ/停止/中断させずに、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
メッセージだけじゃないの?