Документация Python неофициальный перевод

email: классы исключений и дефектовemail: 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.