res = int(open('a.txt').read()) / int(open('c.txt').read()) print res 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

res = int(open('a.txt').read()) / int(open('c.txt').read()) print res

Поиск

Исключения

 

В современных программах передача управления происходит не всегда так гладко,как в описанных выше конструкциях.Для обработки особых ситуаций(таких как деление на ноль или попытка чтения из несуществующего файла)применяется механизм исключений.Лучше всего пояснить синтаксис оператора try-except следующим примером:

 

try:

 

res = int(open('a.txt').read()) / int(open('c.txt').read()) print res

except IOError:

print "Ошибка ввода-вывода" except ZeroDivisionError:

 

print "Деление на 0" except KeyboardInterrupt:

print "Прерывание с клавиатуры" except:

 

print "Ошибка"

 

В этом примере берутся числа из двух файлов и делятся одно на другое.В результате этих нехитрых действий может возникнуть несколько исключительных ситуаций,некоторые из них отмечены в частях except(здесь использованы стандартные встроенные исключенияPython). Последняя часть except в этом примере улавливает все другие исключения,


 


которые не были пойманы выше.Например,если хотя бы в одном из файлов находится нечисловое значение,функция int() возбудит исключение ValueError.Его-то и сможет отловить последняя часть except.Разумеется,выполнение части try в случае возникновения ошибки уже не продолжается после выполнения одной из частей except.

 

В отличие от других языков программирования,вPythonисключения нередко служат для упрощения алгоритмов.Записывая оператор try-except,программист может думать так:

 

"попробую, а если сорвется - выполнится код в except". Особенно часто это используется для выражений,в которых значение получается по ключу из отображения:

 

try:

 

value = dict[key] except:

 



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 57; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.146 (0.006 с.)