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