Форум сайта python.su
Всем привет!
Подскажите пожалуйста, в чём принципиальное различие между использованием конструкции вида:
try:
foo()
except:
...
else:
foo2()
try:
foo()
foo2()
except:
...
Офлайн
Блок
else
...
Офлайн
Удалено…заудмался
Отредактировано (Окт. 21, 2009 13:54:25)
Офлайн
regallОбманул)
выполнится в любом случае, независимо от того, был ексепшн или нет.
Офлайн
если мысленно заменить except на if, то сразу все станет наглядно и понятно :)
Офлайн
DaevaornДико извиняюсь, таки да, обманул)
Обманул)
Офлайн
DaevaornСпасибо!regallОбманул)
выполнится в любом случае, независимо от того, был ексепшн или нет.
В else попадет выполнение только если _не_ было выброшено исключение.
Нужно это для того чтобы явно указать - этим try except я ловлю исключения только в этом коде (который между try except),а в другом коде (который после else) я эти исключения не ловлю совсем или ловлю по другому и при этом этот код должен отработать, если первый отработал успешно.
Офлайн
пишите как вам удобно. Но в целом - мысль правильная.
Офлайн