Подтвердить что ты не робот

Python: try-catch-else без обработки исключения. Возможное?

Я новичок в python и задаюсь вопросом, могу ли я сделать инструкцию try-catch-else без обработки исключения?

Как

try:
    do_something()
except Exception:
else:
    print("Message: ", line) // complains about that else is not intended
4b9b3361

Ответ 1

Следующий пример кода показывает, как поймать и проигнорировать исключение, используя pass.

try:
    do_something()
except RuntimeError:
    pass # does nothing
else:
    print("Message: ", line) 

Ответ 2

Хотя я согласен с тем, что Йохен Ритцел - хороший ответ, я думаю, что в нем может быть небольшой надзор. В pass ing исключение/is/обрабатывается, ничего не делается. Так что, исключение игнорируется.

Если вы действительно не хотите обрабатывать исключение, исключение должно быть raise d. Следующий код изменяет код Йохен.

try:
    do_something()
except RuntimeError:
    raise #raises the exact error that would have otherwise been raised.
else:
    print("Message: ", line)