Ich versuche, eine Warnung in Python auszulösen, ohne dass das Programm abstürzt / stoppt / unterbricht.
Ich benutze die folgende einfache Funktion, um zu überprüfen, ob der Benutzer eine Zahl ungleich Null an ihn übergeben hat. In diesem Fall sollte das Programm sie warnen, aber wie gewohnt fortfahren. Es sollte unter wie der Code arbeitet, soll aber Klasse verwenden Warning()
, Error()
oder Exception()
stattdessen die Warnung auszudrucken manuell.
def is_zero(i):
if i != 0:
print "OK"
else:
print "WARNING: the input is 0!"
return i
Wenn ich den folgenden Code verwende und 0 an die Funktion übergebe, stürzt das Programm ab und der Wert wird nie zurückgegeben. Stattdessen möchte ich, dass das Programm normal fortgesetzt wird und den Benutzer darüber informiert, dass er 0 an die Funktion übergeben hat.
def is_zero(i):
if i != 0:
print "OK"
else:
raise Warning("the input is 0!")
return i
Ich möchte in der Lage sein zu testen, ob eine Warnung ausgelöst wurde, indem ich sie von unittest teste. Wenn ich die Nachricht einfach ausdrucke, kann ich sie nicht mit assertRaises in unittest testen.
print
die Nachricht?