Я имею дело с проблемой, как вызвать предупреждение в 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 в unittest.