Spec-Zone.ru › Python 3.10

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). Кодированный блок сохранился без изменений.
  • InvalidDateDefect — при декодировании некорректного или неразборчивого поля даты. Исходное значение сохраняется без изменений.

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

Spec-Zone.ru

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