От zloba Ответить на сообщение
К ЛАА Ответить по почте
Дата 24.06.2005 23:59:37 Найти в дереве
Рубрики Прочее; Версия для печати

никакой ошибки не будет

>>> Предлагаю записать в следующей нотации:
>>
>>> try
>>> NO SMILE
>>> except
>>> :} :} :} :} :} :} :} :} :} :} :} :} :} :} :} :} :} :}
>>> finaly
>>> :} :} :} :} :} :} :} :} :} :} :} :} :} :} :} :} :} :}
>>
>>> С уважением, GIV.
>>
>> Здесь except не нужен, т.к. он сработает, то смайлы будут отработаны дважды: и после expept и после finally :-)
>>
>> С уважением,
>> Евгений
>>
>> PS: :-)
>
>Хм, а разве except и finally можно совмещать в одном блоке try? Какой смысл?

Совмещать можно. Смысл именно в выборочной обработке исключений определенного типа в except'e, как Вы показали в примере ниже, и в последующей генерации или проглатывании raise. Например, "поймав" exception одного типа, можно произвести некоторые действия и сгенерировать raise другого типа. А то и вовсе сделать вид, что ничего не произошло ;)

Про finally. Хорошая морская практика говорит о том, что в finally убивается все, что было рождено после try. Код finally выполняется даже если был сделан exit из процедуры.


-)

>В свою очередь предложил бы следующий вариант кода:

Нехороший вариант. Вложенная обработка исключений - дурной тон программирования ;) Надо проектировать так, что бы в этом не было необходимости. Ничего личного ;)

>
>try
>  TWO_WORDS_ON_THE_TOPIC
>  JOKE_EXPRESSION
>except
>  on VERRRY_SERRRIOUS_STATEMENT
>    try
>      8-)) $-)))) :-))))) ;-)))))))
>    except
>      on EVEN_MORRRRE_SERRRRRIOUS_STATEMENT
>        try
>          VERRRRRRY_SERRRRRRIOUS_EXPLANATION_WHY_YOU_USE_SMILES
>        except
>          on ANY_EXCEPTION
>            GIVE_UP
>


>С уважением.

>п.с. JOKE_EXPRESSION




Рейтинг@Mail.ru Rambler's Top100