Инструменты пользователя

Инструменты сайта


develop:pyton:excep

Это старая версия документа!


Обработка исключений. Итераторы, контейнеры и перечисления. Работа с файлами и каталогами

Обработка исключений

В Python исключения используются не только в случае ошибки но при каких либо событиях, например конец списка (ValueError)

try..except..else..finally

try:
  ...
except [ [as ]]:
  ... # Блоков может быть несколько
else:
  ... # Выполняется если исключения не было
finally:
  ... # Выполняется в любом случае
try:
  ...
except (NameError, IndexError, EsheError) as err:
  ... # обработка нескольких исключений
  print(err.__class__.__name__)

Более подробную инфу по исключению можно получить в tracebask.exc_info(), можно даже трассировку делать оО

with..as

Протокол «Менеджеров контекста» гарантирует выполнение завершающих действий, например закрытие файла, даже при исключениях.
Не совсем понял отличия от try..finally ..
В классе, который используется в этом блоке, должны быть еще спец функции enter() и exit()

Классы встроенных исключений

Все встроенные исключения являются классами, благодаря этому сохраняется вложенная структура

Пользовательские исключения

Для инициирования исключения предназначены функции: raise и assert
В первом случае указывается экземпляр (или объект) класса исключения, можно передавать параметры и т.д.
Во втором, делается проверка выражения и в случае «False», вызывается исключение

class myError(Exception):
  ...
 
try:
  raise myError("Описание исключения")
except myError as err:
 ...
 
##############
try:
  assert x>= 0, "Сообщение об ошибке"
except AssertionError as err:
  print(err) # Покажет сообщение об ошибке

Итераторы, контейнеры и перечисления

 
 

Итераторы

 
 

Контейнеры

 
 

Конт-последовательности

 
 

Конт-словари

 
 

Перечисления

 
 

Работа с файлами и каталогами

 
 

Открытие

 
 

Методы

 
 

Доступ (модуль os)

 
 

StringIO / BytesIO

 
 

Права доступа

 
 

Манипулирование файлами

 
 

Перенаправление В/В

 
 

Сохранение объектов в файл

 
 

Работа с каталогами

 
 

scandir()

 
 

Исключения файловых операций

 
 
develop/pyton/excep.1646662749.txt.gz · Последнее изменение: 2022/03/07 14:19 — admin