email.errors: Классы исключений и дефектов
Исходный код: Lib/email/errors.py
В модуле email.errors определены следующие классы исключений:
-
exception email.errors.MessageError -
Это базовый класс для всех исключений, которые может генерировать пакет
email. Он наследуется от стандартного классаExceptionи не определяет дополнительных методов.
-
exception email.errors.MessageParseError -
Это базовый класс для исключений, генерируемых классом
Parser. Он наследуется отMessageError.
-
exception email.errors.HeaderParseError -
Возникает при некоторых ошибках при разборе заголовков RFC 2822 сообщения. Этот класс наследуется от
MessageParseError. Он может быть вызван методамиParser.parseилиParser.parsestr.Ситуации, при которых может возникнуть исключение: обнаружение заголовка конверта после первого заголовка RFC 2822, обнаружение строки продолжения перед первым заголовком RFC 2822, или обнаружение строки в заголовках, которая не является заголовком или строкой продолжения.
-
exception email.errors.BoundaryError -
Возникает при некоторых ошибках при разборе заголовков RFC 2822 сообщения. Этот класс наследуется от
MessageParseError. Он может быть вызван методамиParser.parseилиParser.parsestr.Ситуации, при которых может возникнуть исключение: невозможность найти начальную или конечную границу в сообщении multipart/* при строгом разборе.
-
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, padding был некорректным. Достаточно padding для выполнения декодирования добавлен, но результирующие декодированные данные могут быть недействительными. -
InvalidBase64CharactersDefect– При декодировании блока данных, закодированных в base64, были встречены символы, не входящие в алфавит base64. Символы игнорируются, но результирующие декодированные данные могут быть недействительными.
© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.5/library/email.errors.html