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–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.7/library/email.errors.html