Документация Python неофициальный перевод

exceptions.md

472 строк · 43.3 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.4/library/exceptions.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 5. Встроенные исключения89В Python все исключения должны быть экземплярами класса, наследующего от [`BaseException`](https://python-all.ru/3.4/library/exceptions.html#BaseException). В инструкции [`try`](https://python-all.ru/3.4/reference/compound_stmts.html#try) с блоком [`except`](https://python-all.ru/3.4/reference/compound_stmts.html#except), в котором указан конкретный класс, этот блок также обрабатывает любые исключения, являющиеся подклассами этого класса (но не классы исключений, от которых *он* наследуется). Два класса исключений, не связанные отношением наследования, никогда не эквивалентны, даже если у них одинаковые имена.1011Перечисленные ниже встроенные исключения могут быть созданы интерпретатором или встроенными функциями. За исключением особо оговоренных случаев, они имеют «связанное значение», указывающее на детальную причину ошибки. Это может быть строка или кортеж из нескольких элементов информации (например, код ошибки и строка, поясняющая код). Связанное значение обычно передаётся в качестве аргументов конструктору класса исключения.1213Пользовательский код может возбуждать встроенные исключения. Это можно использовать для проверки обработчика исключений или для сообщения об ошибке «точно так же», как если бы интерпретатор возбудил то же самое исключение; однако следует помнить, что ничто не мешает пользовательскому коду возбудить неподходящую ошибку.1415Встроенные классы исключений можно наследовать для определения новых исключений; программистам рекомендуется создавать новые исключения на основе класса [`Exception`](https://python-all.ru/3.4/library/exceptions.html#Exception) или одного из его подклассов, а не на основе [`BaseException`](https://python-all.ru/3.4/library/exceptions.html#BaseException). Дополнительная информация об определении исключений доступна в учебнике по Python в разделе [*Пользовательские исключения*](https://python-all.ru/3.4/tutorial/errors.html#tut-userexceptions).1617При возбуждении (или повторном возбуждении) исключения в блоке [`except`](https://python-all.ru/3.4/reference/compound_stmts.html#except) или [`finally`](https://python-all.ru/3.4/reference/compound_stmts.html#finally) `__context__` автоматически устанавливается в последнее перехваченное исключение; если новое исключение не обработано, в итоговой трассировке будут показаны исходное исключение (или исключения) и конечное исключение.1819При возбуждении нового исключения (а не при использовании пустого `raise` для повторного возбуждения текущего обрабатываемого исключения), неявный контекст исключения может быть дополнен явной причиной с помощью [`from`](https://python-all.ru/3.4/reference/simple_stmts.html#from) с [`raise`](https://python-all.ru/3.4/reference/simple_stmts.html#raise):2021```python22raise new_exc from original_exc23```2425Выражение после [`from`](https://python-all.ru/3.4/reference/simple_stmts.html#from) должно быть исключением или `None`. Оно будет установлено как `__cause__` в возбуждённом исключении. Установка `__cause__` также неявно устанавливает атрибут `__suppress_context__` в `True`, так что использование `raise new_exc from None` фактически заменяет старое исключение новым для целей отображения (например, преобразование [`KeyError`](https://python-all.ru/3.4/library/exceptions.html#KeyError) в [`AttributeError`](https://python-all.ru/3.4/library/exceptions.html#AttributeError), при этом старое исключение остаётся доступным в `__context__` для анализа при отладке).2627Код отображения трассировки по умолчанию показывает эти связанные исключения в дополнение к трассировке самого исключения. Явно связанное исключение в `__cause__` всегда показывается, если оно присутствует. Неявно связанное исключение в `__context__` показывается только если `__cause__` равно [`None`](https://python-all.ru/3.4/library/constants.html#None) и `__suppress_context__` равно false.2829В любом случае, само исключение всегда показывается после любых связанных исключений, так что последняя строка трассировки всегда показывает последнее возбуждённое исключение.3031## 5.1. Базовые классы3233Следующие исключения в основном используются как базовые классы для других исключений.3435#### `exception BaseException`3637Базовый класс для всех встроенных исключений. Он не предназначен для прямого наследования пользовательскими классами (для этого используйте [`Exception`](https://python-all.ru/3.4/library/exceptions.html#Exception)). Если на экземпляре этого класса вызвать [`str()`](https://python-all.ru/3.4/library/stdtypes.html#str), возвращается представление аргумента (аргументов), переданных экземпляру, или пустая строка, если аргументов не было.3839#### `args`4041Кортеж аргументов, переданных конструктору исключения. Некоторые встроенные исключения (например, [`OSError`](https://python-all.ru/3.4/library/exceptions.html#OSError)) ожидают определённое количество аргументов и придают элементам этого кортежа особый смысл, в то время как другие обычно вызываются только с одной строкой, содержащей сообщение об ошибке.4243#### `with_traceback(tb)`4445Этот метод устанавливает *tb* в качестве новой трассировки для исключения и возвращает объект исключения. Обычно используется в коде обработки исключений, например:4647```python48try:49    ...50except SomeException:51    tb = sys.exc_info()[2]52    raise OtherException(...).with_traceback(tb)53```5455#### `exception Exception`5657Все встроенные исключения, не приводящие к завершению системы, являются производными от этого класса. Все определённые пользователем исключения также должны наследоваться от этого класса.5859#### `exception ArithmeticError`6061Базовый класс для тех встроенных исключений, которые возбуждаются при различных арифметических ошибках: [`OverflowError`](https://python-all.ru/3.4/library/exceptions.html#OverflowError), [`ZeroDivisionError`](https://python-all.ru/3.4/library/exceptions.html#ZeroDivisionError), [`FloatingPointError`](https://python-all.ru/3.4/library/exceptions.html#FloatingPointError).6263#### `exception BufferError`6465Возбуждается, когда не может быть выполнена операция, связанная с [*буфером*](https://python-all.ru/3.4/c-api/buffer.html#bufferobjects).6667#### `exception LookupError`6869Базовый класс для исключений, которые возбуждаются, когда ключ или индекс, используемые в отображении или последовательности, недопустимы: [`IndexError`](https://python-all.ru/3.4/library/exceptions.html#IndexError), [`KeyError`](https://python-all.ru/3.4/library/exceptions.html#KeyError). Это исключение может быть возбуждено напрямую функцией [`codecs.lookup()`](https://python-all.ru/3.4/library/codecs.html#codecs.lookup).7071## 5.2. Конкретные исключения7273Обычно возбуждаются следующие исключения.7475#### `exception AssertionError`7677Возбуждается, когда инструкция [`assert`](https://python-all.ru/3.4/reference/simple_stmts.html#assert) завершается неудачей.7879#### `exception AttributeError`8081Возбуждается, когда обращение к атрибуту (см. [*Обращения к атрибутам*](https://python-all.ru/3.4/reference/expressions.html#attribute-references)) или присваивание атрибута завершается неудачей. (Если объект вообще не поддерживает обращение к атрибутам или их присваивание, возбуждается [`TypeError`](https://python-all.ru/3.4/library/exceptions.html#TypeError).)8283#### `exception EOFError`8485Возбуждается, когда функция [`input()`](https://python-all.ru/3.4/library/functions.html#input) достигает конца файла (EOF), не прочитав никаких данных. (Примечание: методы `io.IOBase.read()` и [`io.IOBase.readline()`](https://python-all.ru/3.4/library/io.html#io.IOBase.readline) возвращают пустую строку при достижении EOF.)8687#### `exception FloatingPointError`8889Возбуждается при сбое операции с плавающей точкой. Это исключение определено всегда, но может быть возбуждено только если Python скомпилирован с опцией `--with-fpectl`, или символ `WANT_SIGFPE_HANDLER` определён в файле `pyconfig.h`.9091#### `exception GeneratorExit`9293Возбуждается при вызове у [*генератора*](https://python-all.ru/3.4/glossary.html#term-generator) метода `close()`. Он напрямую наследует от [`BaseException`](https://python-all.ru/3.4/library/exceptions.html#BaseException), а не от [`Exception`](https://python-all.ru/3.4/library/exceptions.html#Exception), поскольку технически это не ошибка.9495#### `exception ImportError`9697Возбуждается, когда инструкция [`import`](https://python-all.ru/3.4/reference/simple_stmts.html#import) не может найти определение модуля, или когда конструкция `from ... import` не может найти имя, которое должно быть импортировано.9899Атрибуты `name` и `path` можно установить с помощью аргументов, передаваемых только по ключу, конструктору. При установке они представляют собой имя модуля, который пытались импортировать, и путь к файлу, вызвавшему исключение, соответственно.100101Изменено в версии 3.3: Добавлены атрибуты `name` и `path`.102103#### `exception IndexError`104105Вызывается, когда индекс последовательности выходит за пределы диапазона. (Индексы срезов молча усекаются до допустимого диапазона; если индекс не является целым числом, вызывается [`TypeError`](https://python-all.ru/3.4/library/exceptions.html#TypeError).)106107#### `exception KeyError`108109Вызывается, когда ключ отображения (словаря) не найден среди существующих ключей.110111#### `exception KeyboardInterrupt`112113Вызывается, когда пользователь нажимает клавишу прерывания (обычно `Control-C` или `Delete`). Во время выполнения регулярно проверяется наличие прерываний. Исключение наследуется от [`BaseException`](https://python-all.ru/3.4/library/exceptions.html#BaseException), чтобы случайно не быть перехваченным кодом, который ловит [`Exception`](https://python-all.ru/3.4/library/exceptions.html#Exception), и тем самым не помешать выходу интерпретатора.114115#### `exception MemoryError`116117Вызывается, когда у операции заканчивается память, но ситуация всё ещё может быть исправлена (удалением некоторых объектов). Связанное значение – строка, указывающая, какая (внутренняя) операция исчерпала память. Обратите внимание, что из-за особенностей архитектуры управления памятью (функция `malloc()` в C) интерпретатор не всегда может полностью восстановиться после такой ситуации; тем не менее, он вызывает исключение, чтобы можно было вывести трассировку стека, если причиной была вышедшая из-под контроля программа.118119#### `exception NameError`120121Вызывается, когда не найдено локальное или глобальное имя. Это относится только к неквалифицированным именам. Связанное значение – сообщение об ошибке, которое включает имя, которое не удалось найти.122123#### `exception NotImplementedError`124125Это исключение происходит от [`RuntimeError`](https://python-all.ru/3.4/library/exceptions.html#RuntimeError). В пользовательских базовых классах абстрактные методы должны вызывать это исключение, когда они требуют от производных классов переопределить метод.126127#### `exception OSError([arg])`128129#### `exception OSError(errno, strerror[, filename[, winerror[, filename2]]])`130131Это исключение вызывается, когда системная функция возвращает системную ошибку, включая ошибки ввода-вывода, такие как «файл не найден» или «диск заполнен» (не для недопустимых типов аргументов или других случайных ошибок).132133Вторая форма конструктора устанавливает соответствующие атрибуты, описанные ниже. Если они не указаны, атрибуты по умолчанию равны [`None`](https://python-all.ru/3.4/library/constants.html#None). Для обратной совместимости, если передано три аргумента, атрибут [`args`](https://python-all.ru/3.4/library/exceptions.html#BaseException.args) содержит только кортеж из двух элементов – первых двух аргументов конструктора.134135Конструктор часто на самом деле возвращает подкласс [`OSError`](https://python-all.ru/3.4/library/exceptions.html#OSError), как описано ниже в разделе [исключения ОС](https://python-all.ru/3.4/library/exceptions.html#os-exceptions). Конкретный подкласс зависит от конечного значения [`errno`](https://python-all.ru/3.4/library/exceptions.html#OSError.errno). Это поведение возникает только при создании [`OSError`](https://python-all.ru/3.4/library/exceptions.html#OSError) напрямую или через псевдоним, и не наследуется при создании подклассов.136137#### `errno`138139Числовой код ошибки из переменной C `errno`.140141#### `winerror`142143В Windows этот атрибут содержит собственный код ошибки Windows. Атрибут [`errno`](https://python-all.ru/3.4/library/exceptions.html#OSError.errno) затем является приблизительным переводом этого собственного кода ошибки в терминах POSIX.144145В Windows, если аргумент конструктора *winerror* является целым числом, атрибут [`errno`](https://python-all.ru/3.4/library/exceptions.html#OSError.errno) определяется из кода ошибки Windows, а аргумент *errno* игнорируется. На других платформах аргумент *winerror* игнорируется, и атрибут [`winerror`](https://python-all.ru/3.4/library/exceptions.html#OSError.winerror) не существует.146147#### `strerror`148149Соответствующее сообщение об ошибке, предоставляемое операционной системой. Оно форматируется функциями C `perror()` в POSIX и `FormatMessage()` в Windows.150151#### `filename`152153#### `filename2`154155Для исключений, связанных с путём в файловой системе (например, [`open()`](https://python-all.ru/3.4/library/functions.html#open) или [`os.unlink()`](https://python-all.ru/3.4/library/os.html#os.unlink)), [`filename`](https://python-all.ru/3.4/library/exceptions.html#OSError.filename) – это имя файла, переданное функции. Для функций, использующих два пути файловой системы (таких как [`os.rename()`](https://python-all.ru/3.4/library/os.html#os.rename)), [`filename2`](https://python-all.ru/3.4/library/exceptions.html#OSError.filename2) соответствует второму имени файла, переданному функции.156157Изменено в версии 3.3: [`EnvironmentError`](https://python-all.ru/3.4/library/exceptions.html#EnvironmentError), [`IOError`](https://python-all.ru/3.4/library/exceptions.html#IOError), [`WindowsError`](https://python-all.ru/3.4/library/exceptions.html#WindowsError), `VMSError`, [`socket.error`](https://python-all.ru/3.4/library/socket.html#socket.error), [`select.error`](https://python-all.ru/3.4/library/select.html#select.error) и `mmap.error` были объединены в [`OSError`](https://python-all.ru/3.4/library/exceptions.html#OSError), и конструктор может возвращать подкласс.158159Изменено в версии 3.4: Атрибут [`filename`](https://python-all.ru/3.4/library/exceptions.html#OSError.filename) теперь является исходным именем файла, переданным функции, а не именем, закодированным или декодированным из кодировки файловой системы. Кроме того, были добавлены аргумент конструктора и атрибут *filename2*.160161#### `exception OverflowError`162163Вызывается, когда результат арифметической операции слишком велик для представления. Для целых чисел этого не происходит (они скорее вызовут [`MemoryError`](https://python-all.ru/3.4/library/exceptions.html#MemoryError), чем сдадутся). Однако по историческим причинам OverflowError иногда вызывается для целых чисел, выходящих за требуемый диапазон. Из-за отсутствия стандартизации обработки исключений с плавающей запятой в C большинство операций с плавающей запятой не проверяются.164165#### `exception ReferenceError`166167Это исключение вызывается, когда прокси слабой ссылки, созданный функцией [`weakref.proxy()`](https://python-all.ru/3.4/library/weakref.html#weakref.proxy), используется для доступа к атрибуту объекта после его сборки мусора. Для получения дополнительной информации о слабых ссылках см. модуль [`weakref`](https://python-all.ru/3.4/library/weakref.html#module-weakref).168169#### `exception RuntimeError`170171Возникает, когда обнаружена ошибка, не попадающая ни в одну из других категорий. Связанное значение – строка, указывающая, что именно пошло не так.172173#### `exception StopIteration`174175Возбуждается встроенной функцией [`next()`](https://python-all.ru/3.4/library/functions.html#next) и методом [*итератора*](https://python-all.ru/3.4/glossary.html#term-iterator) [`__next__()`](https://python-all.ru/3.4/library/stdtypes.html#iterator.__next__), чтобы указать, что итератор больше не выдаёт элементов.176177Объект исключения имеет единственный атрибут `value`, который передаётся как аргумент при создании исключения и по умолчанию равен [`None`](https://python-all.ru/3.4/library/constants.html#None).178179Когда генераторная функция возвращает значение, возбуждается новый экземпляр [`StopIteration`](https://python-all.ru/3.4/library/exceptions.html#StopIteration), и возвращённое функцией значение используется в качестве параметра `value` конструктора исключения.180181Изменено в версии 3.3: Добавлен атрибут `value` и возможность для генераторных функций использовать его для возврата значения.182183#### `exception SyntaxError`184185Возбуждается, когда синтаксический анализатор обнаруживает синтаксическую ошибку. Это может произойти в операторе [`import`](https://python-all.ru/3.4/reference/simple_stmts.html#import), при вызове встроенных функций [`exec()`](https://python-all.ru/3.4/library/functions.html#exec) или [`eval()`](https://python-all.ru/3.4/library/functions.html#eval), а также при чтении начального скрипта или стандартного ввода (в том числе в интерактивном режиме).186187Экземпляры этого класса имеют атрибуты `filename`, `lineno`, `offset` и `text` для удобного доступа к подробностям. [`str()`](https://python-all.ru/3.4/library/stdtypes.html#str) от экземпляра исключения возвращает только сообщение.188189#### `exception IndentationError`190191Базовый класс для синтаксических ошибок, связанных с неправильным отступом. Является подклассом [`SyntaxError`](https://python-all.ru/3.4/library/exceptions.html#SyntaxError).192193#### `exception TabError`194195Возбуждается, когда в отступах используется непоследовательное сочетание табуляции и пробелов. Является подклассом [`IndentationError`](https://python-all.ru/3.4/library/exceptions.html#IndentationError).196197#### `exception SystemError`198199Возникает, когда интерпретатор обнаруживает внутреннюю ошибку, но ситуация не настолько серьезна, чтобы заставить его отказаться от всех надежд. Связанное значение представляет собой строку, указывающую на то, что пошло не так (на низкоуровневом языке).200201Сообщите об этом автору или сопровождающему вашего интерпретатора Python. Обязательно укажите версию интерпретатора Python (`sys.version`; она также выводится в начале интерактивного сеанса Python), точное сообщение об ошибке (связанное значение исключения) и, если возможно, исходный код программы, вызвавшей ошибку.202203#### `exception SystemExit`204205Это исключение возбуждается функцией [`sys.exit()`](https://python-all.ru/3.4/library/sys.html#sys.exit). Оно наследуется от [`BaseException`](https://python-all.ru/3.4/library/exceptions.html#BaseException), а не от [`Exception`](https://python-all.ru/3.4/library/exceptions.html#Exception), чтобы его случайно не перехватывал код, который ловит [`Exception`](https://python-all.ru/3.4/library/exceptions.html#Exception). Это позволяет исключению корректно распространяться вверх и приводить к завершению интерпретатора. Если оно не обработано, интерпретатор Python завершается; стек вызовов не выводится. Конструктор принимает тот же необязательный аргумент, который передаётся в [`sys.exit()`](https://python-all.ru/3.4/library/sys.html#sys.exit). Если значение является целым числом, оно задаёт код завершения системы (передаётся функции `exit()` в C); если это `None`, код завершения равен нулю; если оно имеет другой тип (например, строку), значение объекта выводится, а код завершения равен единице.206207Вызов [`sys.exit()`](https://python-all.ru/3.4/library/sys.html#sys.exit) преобразуется в исключение, чтобы могли выполниться обработчики очистки (блоки [`finally`](https://python-all.ru/3.4/reference/compound_stmts.html#finally) операторов [`try`](https://python-all.ru/3.4/reference/compound_stmts.html#try)) и чтобы отладчик мог выполнять скрипт без риска потери управления. Функцию [`os._exit()`](https://python-all.ru/3.4/library/os.html#os._exit) можно использовать, если абсолютно необходимо немедленно завершиться (например, в дочернем процессе после вызова [`os.fork()`](https://python-all.ru/3.4/library/os.html#os.fork)).208209#### `code`210211Код завершения или сообщение об ошибке, передаваемое конструктору. (По умолчанию `None`.)212213#### `exception TypeError`214215Вызывается, когда операция или функция применяется к объекту неподходящего типа. Связанное значение – строка с подробностями о несоответствии типов.216217#### `exception UnboundLocalError`218219Возбуждается при обращении к локальной переменной в функции или методе, которой не присвоено значение. Является подклассом [`NameError`](https://python-all.ru/3.4/library/exceptions.html#NameError).220221#### `exception UnicodeError`222223Возбуждается при возникновении ошибки кодирования или декодирования, связанной с Unicode. Является подклассом [`ValueError`](https://python-all.ru/3.4/library/exceptions.html#ValueError).224225[`UnicodeError`](https://python-all.ru/3.4/library/exceptions.html#UnicodeError) имеет атрибуты, описывающие ошибку кодирования или декодирования. Например, `err.object[err.start:err.end]` даёт конкретные недопустимые входные данные, на которых споткнулся кодек.226227#### `encoding`228229Имя кодировки, вызвавшей ошибку.230231#### `reason`232233Строка, описывающая конкретную ошибку кодека.234235#### `object`236237Объект, который кодек пытался закодировать или декодировать.238239#### `start`240241Первый индекс недопустимых данных в [`object`](https://python-all.ru/3.4/library/functions.html#object).242243#### `end`244245Индекс после последнего недопустимого элемента в [`object`](https://python-all.ru/3.4/library/functions.html#object).246247#### `exception UnicodeEncodeError`248249Возникает при ошибке, связанной с Unicode, во время кодирования. Является подклассом [`UnicodeError`](https://python-all.ru/3.4/library/exceptions.html#UnicodeError).250251#### `exception UnicodeDecodeError`252253Возникает при ошибке, связанной с Unicode, во время декодирования. Является подклассом [`UnicodeError`](https://python-all.ru/3.4/library/exceptions.html#UnicodeError).254255#### `exception UnicodeTranslateError`256257Возникает при ошибке, связанной с Unicode, во время трансляции. Является подклассом [`UnicodeError`](https://python-all.ru/3.4/library/exceptions.html#UnicodeError).258259#### `exception ValueError`260261Возникает, когда встроенная операция или функция получает аргумент правильного типа, но с неподходящим значением, и эта ситуация не описывается более точным исключением, например [`IndexError`](https://python-all.ru/3.4/library/exceptions.html#IndexError).262263#### `exception ZeroDivisionError`264265Вызывается, когда второй аргумент операции деления или взятия остатка равен нулю. Связанное значение – строка, указывающая тип операндов и операцию.266267Следующие исключения сохранены для совместимости с предыдущими версиями; начиная с Python 3.3, они являются псевдонимами [`OSError`](https://python-all.ru/3.4/library/exceptions.html#OSError).268269#### `exception EnvironmentError`270271#### `exception IOError`272273#### `exception WindowsError`274275Доступно только в Windows.276277### 5.2.1. Исключения ОС278279Следующие исключения являются подклассами [`OSError`](https://python-all.ru/3.4/library/exceptions.html#OSError); они возбуждаются в зависимости от системного кода ошибки.280281#### `exception BlockingIOError`282283Возникает, когда операция должна была бы заблокироваться на объекте (например, сокете), настроенном на неблокирующий режим. Соответствует `errno` `EAGAIN`, `EALREADY`, `EWOULDBLOCK` и `EINPROGRESS`.284285В дополнение к атрибутам [`OSError`](https://python-all.ru/3.4/library/exceptions.html#OSError), [`BlockingIOError`](https://python-all.ru/3.4/library/exceptions.html#BlockingIOError) может иметь ещё один атрибут:286287#### `characters_written`288289Целое число, содержащее количество символов, записанных в поток данных до блокировки. Этот атрибут доступен при использовании буферизованных классов ввода-вывода из модуля [`io`](https://python-all.ru/3.4/library/io.html#module-io).290291#### `exception ChildProcessError`292293Возникает при сбое операции над дочерним процессом. Соответствует `errno` `ECHILD`.294295#### `exception ConnectionError`296297Базовый класс для проблем, связанных с соединением.298299Подклассами являются [`BrokenPipeError`](https://python-all.ru/3.4/library/exceptions.html#BrokenPipeError), [`ConnectionAbortedError`](https://python-all.ru/3.4/library/exceptions.html#ConnectionAbortedError), [`ConnectionRefusedError`](https://python-all.ru/3.4/library/exceptions.html#ConnectionRefusedError) и [`ConnectionResetError`](https://python-all.ru/3.4/library/exceptions.html#ConnectionResetError).300301#### `exception BrokenPipeError`302303Подкласс [`ConnectionError`](https://python-all.ru/3.4/library/exceptions.html#ConnectionError), возникающий при попытке записи в канал, когда другой конец уже закрыт, или при попытке записи в сокет, который был отключён для записи. Соответствует `errno` `EPIPE` и `ESHUTDOWN`.304305#### `exception ConnectionAbortedError`306307Подкласс [`ConnectionError`](https://python-all.ru/3.4/library/exceptions.html#ConnectionError), возникающий при прерывании попытки соединения удалённой стороной. Соответствует `errno` `ECONNABORTED`.308309#### `exception ConnectionRefusedError`310311Подкласс [`ConnectionError`](https://python-all.ru/3.4/library/exceptions.html#ConnectionError), возникающий при отклонении попытки соединения удалённой стороной. Соответствует `errno` `ECONNREFUSED`.312313#### `exception ConnectionResetError`314315A subclass of [`ConnectionError`](https://python-all.ru/3.4/library/exceptions.html#ConnectionError), raised when a connection is reset by the peer. Corresponds to `errno` `ECONNRESET`.316317#### `exception FileExistsError`318319Возникает при попытке создать файл или каталог, который уже существует. Соответствует `errno` `EEXIST`.320321#### `exception FileNotFoundError`322323Возникает при запросе файла или каталога, которого не существует. Соответствует `errno` `ENOENT`.324325#### `exception InterruptedError`326327Возникает, когда системный вызов прерван входящим сигналом. Соответствует `errno` `EINTR`.328329#### `exception IsADirectoryError`330331Возникает, когда файловая операция (например, [`os.remove()`](https://python-all.ru/3.4/library/os.html#os.remove)) запрошена для каталога. Соответствует `errno` `EISDIR`.332333#### `exception NotADirectoryError`334335Возникает, когда операция с каталогом (например, [`os.listdir()`](https://python-all.ru/3.4/library/os.html#os.listdir)) запрошена для объекта, который не является каталогом. Соответствует `errno` `ENOTDIR`.336337#### `exception PermissionError`338339Возникает при попытке выполнить операцию без достаточных прав доступа – например, прав файловой системы. Соответствует `errno` `EACCES` и `EPERM`.340341#### `exception ProcessLookupError`342343Возникает, когда указанный процесс не существует. Соответствует `errno` `ESRCH`.344345#### `exception TimeoutError`346347Возникает, когда системная функция превысила время ожидания на системном уровне. Соответствует `errno` `ETIMEDOUT`.348349Новое в версии 3.3: Добавлены все перечисленные выше подклассы [`OSError`](https://python-all.ru/3.4/library/exceptions.html#OSError).350351> **См. также**352>353> [**PEP 3151**](https://python-all.ru/3.4/library/exceptions.html) – Переработка иерархии исключений ОС и ввода-вывода354355## 5.3. Предупреждения356357Следующие исключения используются в качестве категорий предупреждений; подробнее см. в модуле [`warnings`](https://python-all.ru/3.4/library/warnings.html#module-warnings).358359#### `exception Warning`360361Базовый класс для категорий предупреждений.362363#### `exception UserWarning`364365Базовый класс для предупреждений, генерируемых пользовательским кодом.366367#### `exception DeprecationWarning`368369Базовый класс для предупреждений об устаревших возможностях.370371#### `exception PendingDeprecationWarning`372373Базовый класс для предупреждений о возможностях, которые будут признаны устаревшими в будущем.374375#### `exception SyntaxWarning`376377Базовый класс для предупреждений о сомнительном синтаксисе.378379#### `exception RuntimeWarning`380381Базовый класс для предупреждений о сомнительном поведении во время выполнения.382383#### `exception FutureWarning`384385Базовый класс для предупреждений о конструкциях, которые в будущем изменят семантику.386387#### `exception ImportWarning`388389Базовый класс для предупреждений о возможных ошибках при импорте модулей.390391#### `exception UnicodeWarning`392393Базовый класс для предупреждений, связанных с Unicode.394395#### `exception BytesWarning`396397Базовый класс для предупреждений, связанных с [`bytes`](https://python-all.ru/3.4/library/functions.html#bytes) и [`bytearray`](https://python-all.ru/3.4/library/functions.html#bytearray).398399#### `exception ResourceWarning`400401Базовый класс для предупреждений, связанных с использованием ресурсов.402403Новое в версии 3.2.404405## 5.4. Иерархия исключений406407Иерархия классов для встроенных исключений:408409```python410BaseException411 +-- SystemExit412 +-- KeyboardInterrupt413 +-- GeneratorExit414 +-- Exception415      +-- StopIteration416      +-- ArithmeticError417      |    +-- FloatingPointError418      |    +-- OverflowError419      |    +-- ZeroDivisionError420      +-- AssertionError421      +-- AttributeError422      +-- BufferError423      +-- EOFError424      +-- ImportError425      +-- LookupError426      |    +-- IndexError427      |    +-- KeyError428      +-- MemoryError429      +-- NameError430      |    +-- UnboundLocalError431      +-- OSError432      |    +-- BlockingIOError433      |    +-- ChildProcessError434      |    +-- ConnectionError435      |    |    +-- BrokenPipeError436      |    |    +-- ConnectionAbortedError437      |    |    +-- ConnectionRefusedError438      |    |    +-- ConnectionResetError439      |    +-- FileExistsError440      |    +-- FileNotFoundError441      |    +-- InterruptedError442      |    +-- IsADirectoryError443      |    +-- NotADirectoryError444      |    +-- PermissionError445      |    +-- ProcessLookupError446      |    +-- TimeoutError447      +-- ReferenceError448      +-- RuntimeError449      |    +-- NotImplementedError450      +-- SyntaxError451      |    +-- IndentationError452      |         +-- TabError453      +-- SystemError454      +-- TypeError455      +-- ValueError456      |    +-- UnicodeError457      |         +-- UnicodeDecodeError458      |         +-- UnicodeEncodeError459      |         +-- UnicodeTranslateError460      +-- Warning461           +-- DeprecationWarning462           +-- PendingDeprecationWarning463           +-- RuntimeWarning464           +-- SyntaxWarning465           +-- UserWarning466           +-- FutureWarning467           +-- ImportWarning468           +-- UnicodeWarning469           +-- BytesWarning470           +-- ResourceWarning471```472