Ich habe es mit einem Problem zu tun, wie man eine Warnung in Python auslösen kann, ohne dass das Programm abstürzen muss.Wie kann man eine Warnung in Python auslösen, ohne das Programm anzuhalten (zu unterbrechen)?
Ich benutze folgende einfache Funktion, die nur prüft, ob der Benutzer eine von Null verschiedene Zahl übergeben. Übergibt der Benutzer eine Null, sollte das Programm den Benutzer warnen, aber normal weitermachen. Es sollte wie der folgende Code funktionieren, sollte aber die Klasse Warning(), Error() oder Exception() verwenden, anstatt die Warnung manuell auszugeben.
Wenn ich den folgenden Code verwenden und 0 an die Funktion übergeben, stürzt das Programm ab und der Wert wird nie zurückgegeben. Stattdessen möchte ich, dass das Programm normal fortfährt und nur den Benutzer informiert, dass er 0 an die Funktion übergeben hat.
def isZero(i):
if i != 0:
print "OK"
else:
raise Warning("the input is 0!")
return i
Der Punkt ist, dass ich, dass eine Warnung durch Unittest geworfen wurde testen können, testen möchten. Wenn ich die Nachricht einfach ausdrucke, kann ich sie nicht mit assertRaises im Unittest testen.
Danke, Tomas
Wie genau Sie den Benutzer benachrichtigen möchten? per E-Mail oder SMS? Ursache, die angeschlossen werden kann, aber Sie müssen spezifisch sein. – aaronasterling
Warum druckst du die Nachricht nicht einfach? – sje397
@ sje397 Der Punkt ist, dass ich in der Lage sein soll zu testen, dass eine Warnung geworfen wurde, die es durch unittest prüft. Wenn ich die Nachricht einfach ausdrucke, kann ich das mit assertRaises im Unittest nicht machen. –