email.errors: классы исключений и дефектов¶email.errors: Exception and Defect classes
Исходный код: 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).
-
exception
email.errors.HeaderWriteError¶ Возбуждается при ошибке, возникающей при выводе заголовков объектом
generator.
Вот список дефектов, которые может обнаружить 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– При декодировании недопустимого или неразбираемого поля даты. Исходное значение сохраняется без изменений.