Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 21, 2009 12:38:16

pento
От:
Зарегистрирован: 2007-05-29
Сообщения: 100
Репутация: +  0  -
Профиль   Отправить e-mail  

'try except' vs 'try except else'

Всем привет!

Подскажите пожалуйста, в чём принципиальное различие между использованием конструкции вида:

try:
foo()
except:
...
else:
foo2()
от

try:
foo()
foo2()
except:
...
То есть в каких случаях оправдано использование else try..except конструкциях?



Офлайн

#2 Окт. 21, 2009 13:21:47

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

'try except' vs 'try except else'

Блок

else
...
выполнится в любом случае, независимо от того, был ексепшн или нет.



Офлайн

#3 Окт. 21, 2009 13:52:19

pento
От:
Зарегистрирован: 2007-05-29
Сообщения: 100
Репутация: +  0  -
Профиль   Отправить e-mail  

'try except' vs 'try except else'

Удалено…заудмался



Отредактировано (Окт. 21, 2009 13:54:25)

Офлайн

#4 Окт. 21, 2009 16:07:00

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

'try except' vs 'try except else'

regall
выполнится в любом случае, независимо от того, был ексепшн или нет.
Обманул)

В else попадет выполнение только если _не_ было выброшено исключение.

Нужно это для того чтобы явно указать - этим try except я ловлю исключения только в этом коде (который между try except),а в другом коде (который после else) я эти исключения не ловлю совсем или ловлю по другому и при этом этот код должен отработать, если первый отработал успешно.



Офлайн

#5 Окт. 21, 2009 16:25:32

DHT
От:
Зарегистрирован: 2009-09-24
Сообщения: 119
Репутация: +  0  -
Профиль   Отправить e-mail  

'try except' vs 'try except else'

если мысленно заменить except на if, то сразу все станет наглядно и понятно :)



Офлайн

#6 Окт. 21, 2009 17:46:40

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

'try except' vs 'try except else'

Daevaorn
Обманул)
Дико извиняюсь, таки да, обманул)
Блин, сейчас на работе с чем только не приходится работать (в основном разные PHP фреймворки, по учебе .NET), от я уже и запуталсо =)



Офлайн

#7 Окт. 21, 2009 23:56:04

pento
От:
Зарегистрирован: 2007-05-29
Сообщения: 100
Репутация: +  0  -
Профиль   Отправить e-mail  

'try except' vs 'try except else'

Daevaorn
regall
выполнится в любом случае, независимо от того, был ексепшн или нет.
Обманул)

В else попадет выполнение только если _не_ было выброшено исключение.

Нужно это для того чтобы явно указать - этим try except я ловлю исключения только в этом коде (который между try except),а в другом коде (который после else) я эти исключения не ловлю совсем или ловлю по другому и при этом этот код должен отработать, если первый отработал успешно.
Спасибо!
То есть я правильно понимаю, что смысл есть подобную конструкцию использовать по большей части только для визуального выделения блока кода?
А в большинстве случаем можно просто писать в try секцию после потенциально “опасного” кода?



Офлайн

#8 Окт. 22, 2009 02:28:58

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

'try except' vs 'try except else'

пишите как вам удобно. Но в целом - мысль правильная.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version