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¶
Raised when a payload is added to a Message object using add_payload(), but the payload is already a scalar and the message’s Content-Type main type is not either multipart or missing. MultipartConversionError multiply inherits from MessageError and the built-in TypeError.
Поскольку Message.add_payload() устарел, это исключение редко возникает на практике. Однако исключение также может быть вызвано, если метод attach() вызывается на экземпляре класса, производного от MIMENonMultipart (например, MIMEImage).
Вот список дефектов, которые FeedParser может обнаружить при разборе сообщений. Обратите внимание, что дефекты добавляются к тому сообщению, где была найдена проблема; так, например, если сообщение, вложенное внутрь multipart/alternative, содержало повреждённый заголовок, то у этого вложенного объекта сообщения будет дефект, а у содержащих его сообщений – нет.
Все классы дефектов являются подклассами email.errors.MessageDefect, но этот класс не является исключением!
- NoBoundaryInMultipartDefect – Сообщение заявляло, что оно является multipart, но не имело параметра boundary.
- StartBoundaryNotFoundDefect – Начальная граница, указанная в заголовке Content-Type, не была найдена.
- FirstHeaderLineIsContinuationDefect – Сообщение имело строку продолжения в качестве первой строки заголовка.
- MisplacedEnvelopeHeaderDefect – Заголовок “Unix From” был найден в середине блока заголовков.
- MalformedHeaderDefect – Был найден заголовок, в котором отсутствовало двоеточие или который был иным образом некорректен.
- MultipartInvariantViolationDefect – Сообщение заявлено как multipart, но вложенные части не найдены. Обратите внимание, что если у сообщения есть этот дефект, его метод is_multipart() может возвращать false, даже если его тип содержимого заявлен как multipart.