Spec-Zone.ru › Python 3.8

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

Исходный код: 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).

Ниже приведён список дефектов, которые может найти 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). Кодированный блок оставлен без изменений.

© 2001–2022 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.8/library/email.errors.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API