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

email.errors.md

49 строк · 7.7 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/2.7/library/email.errors.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 18.1.8. [`email.errors`](https://python-all.ru/2.7/library/email.errors.html#module-email.errors): Классы исключений и дефектов89В модуле [`email.errors`](https://python-all.ru/2.7/library/email.errors.html#module-email.errors) определены следующие классы исключений:1011#### `exception email.errors.MessageError`1213Это базовый класс для всех исключений, которые может возбуждать пакет [`email`](https://python-all.ru/2.7/library/email.html#module-email). Он наследуется от стандартного класса [`Exception`](https://python-all.ru/2.7/library/exceptions.html#exceptions.Exception) и не определяет дополнительных методов.1415#### `exception email.errors.MessageParseError`1617Это базовый класс для исключений, вызываемых [`Parser`](https://python-all.ru/2.7/library/email.parser.html#email.parser.Parser) классом. Он наследуется от [`MessageError`](https://python-all.ru/2.7/library/email.errors.html#email.errors.MessageError).1819#### `exception email.errors.HeaderParseError`2021Вызывается при некоторых ошибках при разборе [**RFC 2822**](https://python-all.ru/2.7/library/email.errors.html) заголовков сообщения, этот класс наследуется от [`MessageParseError`](https://python-all.ru/2.7/library/email.errors.html#email.errors.MessageParseError). Он может быть вызван из методов [`Parser.parse`](https://python-all.ru/2.7/library/email.parser.html#email.parser.Parser.parse) или [`Parser.parsestr`](https://python-all.ru/2.7/library/email.parser.html#email.parser.Parser.parsestr).2223Ситуации, в которых он может быть вызван, включают обнаружение конвертного заголовка после первого [**RFC 2822**](https://python-all.ru/2.7/library/email.errors.html) заголовка сообщения, обнаружение строки продолжения до того, как найден первый [**RFC 2822**](https://python-all.ru/2.7/library/email.errors.html) заголовок, или обнаружение строки в заголовках, которая не является ни заголовком, ни строкой продолжения.2425#### `exception email.errors.BoundaryError`2627Вызывается при некоторых ошибках при разборе [**RFC 2822**](https://python-all.ru/2.7/library/email.errors.html) заголовков сообщения, этот класс наследуется от [`MessageParseError`](https://python-all.ru/2.7/library/email.errors.html#email.errors.MessageParseError). Он может быть вызван из методов [`Parser.parse`](https://python-all.ru/2.7/library/email.parser.html#email.parser.Parser.parse) или [`Parser.parsestr`](https://python-all.ru/2.7/library/email.parser.html#email.parser.Parser.parsestr).2829Ситуации, в которых он может быть вызван, включают невозможность найти начальную или конечную границу в *multipart/\** сообщении при строгом разборе.3031#### `exception email.errors.MultipartConversionError`3233Вызывается, когда к объекту [`Message`](https://python-all.ru/2.7/library/email.message.html#email.message.Message) добавляется полезная нагрузка с помощью `add_payload()`, но эта нагрузка уже является скаляром, а основной тип *Content-Type* сообщения не является ни *multipart*, ни отсутствующим. [`MultipartConversionError`](https://python-all.ru/2.7/library/email.errors.html#email.errors.MultipartConversionError) множественно наследуется от [`MessageError`](https://python-all.ru/2.7/library/email.errors.html#email.errors.MessageError) и встроенного [`TypeError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.TypeError).3435Поскольку `Message.add_payload()` устарел, это исключение редко возникает на практике. Однако исключение также может возникнуть, если метод [`attach()`](https://python-all.ru/2.7/library/email.message.html#email.message.Message.attach) вызывается для экземпляра класса, производного от [`MIMENonMultipart`](https://python-all.ru/2.7/library/email.mime.html#email.mime.nonmultipart.MIMENonMultipart) (например, [`MIMEImage`](https://python-all.ru/2.7/library/email.mime.html#email.mime.image.MIMEImage)).3637Вот список дефектов, которые [`FeedParser`](https://python-all.ru/2.7/library/email.parser.html#email.parser.FeedParser) может обнаружить при разборе сообщений. Обратите внимание, что дефекты добавляются к сообщению, в котором найдена проблема; например, если у сообщения, вложенного в *multipart/alternative*, был повреждённый заголовок, то этот вложенный объект сообщения будет иметь дефект, а содержащие сообщения – нет.3839Все классы дефектов являются подклассами `email.errors.MessageDefect`, но этот класс *не* является исключением!4041Новое в версии 2.4: Добавлены все классы дефектов.4243- `NoBoundaryInMultipartDefect` – Сообщение, которое объявлено как multipart, но не имеет параметра *boundary*.44- `StartBoundaryNotFoundDefect` – Начальная граница, объявленная в заголовке *Content-Type*, так и не была найдена.45- `FirstHeaderLineIsContinuationDefect` – У сообщения была строка продолжения в качестве первой строки заголовка.46- `MisplacedEnvelopeHeaderDefect` – Во время разбора заголовка в середине блока заголовков обнаружен заголовок “Unix From”.47- `MalformedHeaderDefect` – Обнаружен заголовок, в котором отсутствовало двоеточие или который был искажён.48- `MultipartInvariantViolationDefect` – сообщение, которое заявлено как *multipart*, но не содержит вложенных частей. Обратите внимание, что у сообщения с этим дефектом метод [`is_multipart()`](https://python-all.ru/2.7/library/email.message.html#email.message.Message.is_multipart) может возвращать false, даже если его тип содержимого заявлен как *multipart*.49