четверг, 16 мая 2013 г.

Зачем в python обрабатывать ошибки?

Все познается из практики. Будет ли показано 'hello':
def shout(word=u'yes'):
    return word.capitalize()+'!'
    
scream = shout

del shout
print shout()
print 'Hello'
Переменную shout мы удалили, поэтому будет ошибка. Выполнение скрипта остановится, слово 'hello' показано не будет.
Но в python есть блок try/catch/finally, который позволяет обработать ошибку и дать скрипту шанс выполняться дальше.
def shout(word=u'yes'):
    return word.capitalize()+'!'
    
scream = shout

del shout

# Мы заранее предвидим, что функцию
# shout() мог удалить какой-то касатик
try:
    print shout()
except NameError, e:
    print e
print 'Hello'
В этом случае будет выведено:
name 'shout' is not defined
Hello

Комментариев нет:

Отправить комментарий