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

email.errors: классы исключений и дефектовemail.errors: Exception and Defect classes

Исходный код: Lib/email/errors.py


В модуле email.errors определены следующие классы исключений:

exception email.errors.MessageError

Это базовый класс для всех исключений, которые может возбуждать пакет email. Он наследуется от стандартного класса Exception и не определяет дополнительных методов.

exception email.errors.MessageParseError

Это базовый класс для исключений, которые возбуждает класс Parser. Он унаследован от MessageError. Кроме того, этот класс используется внутри парсера, который применяется в headerregistry.

exception email.errors.HeaderParseError

Возбуждается при некоторых ошибках во время разбора заголовков RFC 5322 сообщения; этот класс унаследован от MessageParseError. Метод set_boundary() возбудит это исключение, если тип содержимого неизвестен на момент вызова. Header может возбудить это исключение при некоторых ошибках декодирования base64, а также при попытке создать заголовок, который, по-видимому, содержит встроенный заголовок (то есть есть то, что должно быть строкой продолжения, но не имеет начального пробела и выглядит как заголовок).

exception email.errors.BoundaryError

Устарело и больше не используется.

exception email.errors.MultipartConversionError

Вызывается, когда к объекту Message добавляется полезная нагрузка с помощью add_payload(), но эта нагрузка уже является скаляром, а основной тип Content-Type сообщения не является ни multipart, ни отсутствующим. MultipartConversionError множественно наследуется от MessageError и встроенного TypeError.

Поскольку Message.add_payload() устарел, это исключение редко возникает на практике. Однако исключение также может возникнуть, если метод attach() вызывается для экземпляра класса, производного от MIMENonMultipart (например, MIMEImage).

exception email.errors.HeaderWriteError

Возбуждается при ошибке, возникающей при выводе заголовков объектом generator.

Вот список дефектов, которые может обнаружить FeedParser при разборе сообщений. Обратите внимание, что дефекты добавляются в то сообщение, где была найдена проблема; например, если сообщение, вложенное в multipart/alternative, имеет некорректный заголовок, то у этого вложенного сообщения будет дефект, а у содержащих его сообщений – нет.

Все классы дефектов являются подклассами email.errors.MessageDefect.

  • NoBoundaryInMultipartDefect – Сообщение, которое объявлено как multipart, но не имеет параметра boundary.

  • StartBoundaryNotFoundDefect – Начальная граница, объявленная в заголовке Content-Type, так и не была найдена.

  • CloseBoundaryNotFoundDefect – Начальная граница найдена, но соответствующая закрывающая граница так и не найдена.

    Новое в версии 3.3.

  • FirstHeaderLineIsContinuationDefect – У сообщения была строка продолжения в качестве первой строки заголовка.

  • MisplacedEnvelopeHeaderDefect – Во время разбора заголовка в середине блока заголовков обнаружен заголовок “Unix From”.

  • MissingHeaderBodySeparatorDefect – Во время разбора заголовков найдена строка без начального пробела, но и без символа ‘:’. Разбор продолжается в предположении, что эта строка представляет первую строку тела.

    Новое в версии 3.3.

  • MalformedHeaderDefect – Обнаружен заголовок, в котором отсутствовало двоеточие или который был искажён.

    Устарело с версии 3.3: Этот дефект не использовался на протяжении нескольких версий Python.

  • MultipartInvariantViolationDefect – Сообщение утверждает, что является multipart, но не найдено ни одной подобчасти. Обратите внимание: если сообщение имеет этот дефект, его метод is_multipart() может возвращать False, даже если его тип содержимого утверждает, что это multipart.

  • InvalidBase64PaddingDefect – При декодировании блока байтов в кодировке base64 дополнение было некорректным. Добавляется достаточно дополнения для выполнения декодирования, но полученные декодированные байты могут быть недействительными.

  • InvalidBase64CharactersDefect – При декодировании блока байтов в кодировке base64 встречены символы, не входящие в алфавит base64. Эти символы игнорируются, но полученные декодированные байты могут быть недействительными.

  • InvalidBase64LengthDefect – При декодировании блока байтов в кодировке base64 количество недополнительных символов base64 было недопустимым (на 1 больше, чем кратно 4). Закодированный блок оставлен без изменений.

  • InvalidDateDefect – При декодировании недопустимого или неразбираемого поля даты. Исходное значение сохраняется без изменений.