email.errors
: 異常和缺陷類(lèi)?
源代碼: Lib/email/errors.py
以下異常類(lèi)在 email.errors
模塊中定義:
- exception email.errors.MessageError?
這是
email
包可以引發(fā)的所有異常的基類(lèi)。 它源自標準異常Exception
類(lèi),這個(gè)類(lèi)沒(méi)有定義其他方法。
- exception email.errors.MessageParseError?
這是由
Parser
類(lèi)引發(fā)的異常的基類(lèi)。它派生自MessageError
。headerregistry
使用的解析器也在內部使用這個(gè)類(lèi)。
- exception email.errors.HeaderParseError?
在解析消息的 RFC 5322 標頭時(shí),某些錯誤條件下會(huì )觸發(fā),此類(lèi)派生自
MessageParseError
。 如果在調用方法時(shí)內容類(lèi)型未知,則set_boundary()
方法將引發(fā)此錯誤。 當嘗試創(chuàng )建一個(gè)看起來(lái)包含嵌入式標頭的標頭時(shí)Header
可能會(huì )針對某些 base64 解碼錯誤引發(fā)此錯誤(也就是說(shuō),應該是一個(gè) 沒(méi)有前導空格并且看起來(lái)像標題的延續行)。
- exception email.errors.BoundaryError?
已棄用和不再使用的。
- exception email.errors.MultipartConversionError?
當使用
add_payload()
將有效負載添加到Message
對象時(shí),有效負載已經(jīng)是一個(gè)標量,而消息的 Content-Type 主類(lèi)型不是 multipart 或者缺少時(shí)觸發(fā)該異常。MultipartConversionError
多重繼承自MessageError
和內置的TypeError
。由于
Message.add_payload()
已被棄用,此異常實(shí)際上極少會(huì )被引發(fā)。 但是如果在派生自MIMENonMultipart
的類(lèi) (例如MIMEImage
) 的實(shí)例上調用attach()
方法也可以引發(fā)此異常。
以下是 FeedParser
在解析消息時(shí)可發(fā)現的缺陷列表。 請注意這些缺陷會(huì )在問(wèn)題被發(fā)現時(shí)加入到消息中,因此舉例來(lái)說(shuō),如果某條嵌套在 multipart/alternative 中的消息具有錯誤的標頭,該嵌套消息對象就會(huì )有一條缺陷,但外層消息對象則沒(méi)有。
所有缺陷類(lèi)都是 email.errors.MessageDefect
的子類(lèi)。
NoBoundaryInMultipartDefect
-- 一條消息宣稱(chēng)有多個(gè)部分,但卻沒(méi)有 boundary 形參。StartBoundaryNotFoundDefect
-- 在 Content-Type 標頭中宣稱(chēng)的開(kāi)始邊界無(wú)法被找到。CloseBoundaryNotFoundDefect
-- 找到了開(kāi)始邊界,但相應的結束邊界無(wú)法被找到。3.3 新版功能.
FirstHeaderLineIsContinuationDefect
-- 消息以一個(gè)繼續行作為其第一個(gè)標頭行。MisplacedEnvelopeHeaderDefect
- 在標頭塊中間發(fā)現了一個(gè) "Unix From" 標頭。MissingHeaderBodySeparatorDefect
- 在解析沒(méi)有前綴空格但又不包含 ':' 的標頭期間找到一行內容。 解析將假定該行表示消息體的第一行以繼續執行。3.3 新版功能.
MalformedHeaderDefect
-- 找到一個(gè)缺失了冒號或格式錯誤的標頭。3.3 版后已移除: 此缺陷在近幾個(gè) Python 版本中已不再使用。
MultipartInvariantViolationDefect
-- 一條消息宣稱(chēng)為 multipart,但無(wú)法找到任何子部分。 請注意當一條消息有此缺陷時(shí),其is_multipart()
方法可能返回False
,即使其內容類(lèi)型宣稱(chēng)為 multipart。InvalidBase64PaddingDefect
-- 當解碼一個(gè) base64 編碼的字節分塊時(shí),填充的數據不正確。 雖然添加了足夠的填充數據以執行解碼,但作為結果的已解碼字節串可能無(wú)效。InvalidBase64CharactersDefect
-- 當解碼一個(gè) base64 編碼的字節分塊時(shí),遇到了 base64 字符表以外的字符。 這些字符會(huì )被忽略,但作為結果的已解碼字節串可能無(wú)效。InvalidBase64LengthDefect
-- 當解碼一個(gè) base64 編碼的字節分塊時(shí),非填充 base64 字符的數量無(wú)效(比 4 的倍數多 1)。 已編碼分塊會(huì )保持原樣。InvalidDateDefect
-- 當解碼一個(gè)無(wú)效或不可解析的數據字段時(shí)引發(fā)。 原始值會(huì )被保持原樣。