Сообщить об ошибке.

OSError, ошибки операционной системы

В разделе представлены исключения, которые возникают в результате ошибок, возникающих в ходе взаимодействия приложения Python и операционной системы и являются подклассами OSError.

Содержание:


OSError([arg]):

OSError(errno, strerror[, filename[, winerror[, filename2]]]):

Исключение OSError() возникает, когда системная функция возвращает системную ошибку, включая сбои ввода-вывода, типа таких, как "файл не найден" или "диск заполнен". Не срабатывает для недопустимых типов аргументов или других случайных ошибок.

Вторая форма конструктора устанавливает соответствующие атрибуты. У всех атрибутов по умолчанию None если атрибут не указан. Для обратной совместимости, если переданы три аргумента, атрибут args содержит только 2 кортежа из первых двух аргументов конструктора.

Конструктор часто фактически возвращает подкласс OSError, как описано в исключениях ОС ниже. Конкретный подкласс зависит от конечного значения errno. Это поведение имеет место только при построении OSError напрямую или через псевдоним и не наследуется при создании подклассов.

Аргументы исключения OSError():

  • errno - Числовой код ошибки из переменной C errno

  • winerror - В Windows это дает вам собственный код ошибки Windows. Атрибут errno тогда является приблизительным переводом, в терминах POSIX, это нативный код ошибки.

    В Windows, если аргумент конструктора winerror является целым числом, атрибут errno определяется из кода ошибки Windows, а аргумент errno игнорируется. На других платформах аргумент winerror игнорируется, а атрибут winerror не существует.

  • strerror - Соответствующее сообщение об ошибке, предоставленное операционной системой. Он отформатирован функциями языка C perror() под POSIX и FormatMessage() под Windows.

  • filename и filename2 - Для исключений, которые включают путь к файловой системе, например open() или os.unlink(). filename - это имя файла, передаваемое функции. Для функций, которые включают два пути файловой системы, например, os.rename(), filename2 - соответствует второе имя файла, переданное функции.


Исключения подкласса OSError.

Ниже перечисленные исключения, являются подклассом OSError() и возникают в зависимости от системного кода ошибки.

BlockingIOError:

Исключение BlockingIOError поднимается, когда операция блокирует объект (например, сокет), установленный для неблокирующей операции. Соответствует errno EAGAIN, EALREADY, EWOULDBLOCK и EINPROGRESS.

В дополнение к таковым OSError, BlockingIOError может иметь еще один атрибут:

  • characters_written - целое число, содержащее количество символов, записанных в поток до его блокировки. Этот атрибут доступен при использовании буферизованных классов ввода/вывода из io модуля.

ChildProcessError:

Исключение ChildProcessError поднимается при сбое операции с дочерним процессом. Соответствует errno ECHILD.

ConnectionError:

Исключение ConnectionError это базовый класс для вопросов, связанных с подключением.

Подклассы ConnectionError:

  • BrokenPipeError:

    Исключения BrokenPipeError это подкласс ConnectionError, возникающий при попытке записи в канал, когда другой конец был закрыт, или при попытке записи в сокет, который был отключен для записи. Соответствует errno EPIPE и ESHUTDOWN.

  • ConnectionAbortedError:

    Исключения ConnectionAbortedError это подкласс ConnectionError, возникает, когда попытка соединения прерывается партнером. Соответствует errno ECONNABORTED.

  • ConnectionRefusedError:

    Исключения ConnectionRefusedError это подкласс ConnectionError, возникающий, когда одноранговый узел отклоняет попытку подключения. Соответствует errno ECONNREFUSED.

  • ConnectionResetError:

    Исключения ConnectionResetError это подкласс ConnectionError, возникающий при сбросе соединения узлом. Соответствует errno ECONNRESET.

FileExistsError:

Исключение FileExistsError поднимается при попытке создать файл или каталог, который уже существует. Соответствует errno EEXIST.

FileNotFoundError:

Исключение FileNotFoundError поднимается при попытке доступа к несуществующему файлу.. Соответствует errno ENOENT.

Например: FileNotFoundError: [Errno 2] No such file or directory: 'filename'

Вам следует проверить путь к файлу и убедиться, что файл существует в указанном месте.

InterruptedError:

Исключение InterruptedError поднимается, когда системный вызов прерывается входящим сигналом. Соответствует errno EINTR.

Python-3.5: Python теперь повторяет системные вызовы, когда системный вызов прерывается сигналом, кроме случаев, когда обработчик сигнала вызывает исключение вместо возбуждения InterruptedError.

IsADirectoryError:

Исключение IsADirectoryError поднимается, когда к каталогу применяется файловая операция, например os.remove(). Соответствует errno EISDIR.

NotADirectoryError:

Исключение NotADirectoryError возникает, когда совершается попытка операции с каталогом, например os.listdir(), а на самом деле путь не является каталогом. Соответствует errno ENOTDIR.

PermissionError:

Исключение PermissionError поднимается при попытке запустить операцию без соответствующих прав доступа - например, прав доступа к файловой системе. Соответствует errno EACCES и EPERM.

ProcessLookupError:

Исключение ProcessLookupError поднимается, когда данный процесс не существует. Соответствует errno ESRCH.

TimeoutError:

Исключение TimeoutError поднимается, когда время ожидания системной функции на системном уровне. Соответствует errno ETIMEDOUT.