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
– сообщение, заявляемое как составное, но не имеющее параметра 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). Блок кодированный был сохранен как есть.