18.1.8. email.errors: Классы исключений и дефектов¶email.errors: Exception and Defect classes
В модуле 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, но
этот класс не является исключением!
Новое в версии 2.4: Добавлены все классы дефектов.
NoBoundaryInMultipartDefect– Сообщение, которое объявлено как multipart, но не имеет параметра boundary.StartBoundaryNotFoundDefect– Начальная граница, объявленная в заголовке Content-Type, так и не была найдена.FirstHeaderLineIsContinuationDefect– У сообщения была строка продолжения в качестве первой строки заголовка.MisplacedEnvelopeHeaderDefect– Во время разбора заголовка в середине блока заголовков обнаружен заголовок “Unix From”.MalformedHeaderDefect– Обнаружен заголовок, в котором отсутствовало двоеточие или который был искажён.MultipartInvariantViolationDefect– сообщение, которое заявлено как multipart, но не содержит вложенных частей. Обратите внимание, что у сообщения с этим дефектом методis_multipart()может возвращать false, даже если его тип содержимого заявлен как multipart.