Próbuję zgłosić ostrzeżenie w Pythonie bez powodowania awarii / zatrzymania / przerwania programu.
Używam następującej prostej funkcji, aby sprawdzić, czy użytkownik przekazał do niego liczbę niezerową. Jeśli tak, program powinien ich ostrzec, ale kontynuować normalnie. To powinno działać jak poniżej kod, ale należy użyć klasy Warning()
, Error()
albo Exception()
zamiast drukować ostrzeżenie ręcznie.
def is_zero(i):
if i != 0:
print "OK"
else:
print "WARNING: the input is 0!"
return i
Jeśli użyję poniższego kodu i przekażę 0 do funkcji, program zawiesza się i wartość nigdy nie jest zwracana. Zamiast tego chcę, aby program działał normalnie i po prostu poinformował użytkownika, że przekazał 0 do funkcji.
def is_zero(i):
if i != 0:
print "OK"
else:
raise Warning("the input is 0!")
return i
Chcę mieć możliwość sprawdzenia, czy zostało wysłane ostrzeżenie, testując je przez unittest. Jeśli po prostu wydrukuję wiadomość, nie będę w stanie przetestować jej za pomocą assertRaises in unittest.
print
wiadomości?