18.1.8. "email.errors": 例外及び欠陥クラス
******************************************

"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" がメッセージの解析中に検出する障害 (defect) の一覧
です。これらの障害は、問題が見つかったメッセージに追加されるため、たと
えば *multipart/alternative* 内にあるネストしたメッセージが異常なヘッ
ダをもっていた場合には、そのネストしたメッセージが障害を持っているが、
その親メッセージには障害はないとみなされることに注意してください。

すべての障害クラスは "email.errors.MessageDefect" のサブクラスですが、
これは例外とは *違います* ので注意してください！

バージョン 2.4 で追加: 全ての障害クラスが追加されました。

* "NoBoundaryInMultipartDefect" -- メッセージが multipart だと宣言さ
  れ ているのに、 *boundary* パラメータがない。

* "StartBoundaryNotFoundDefect" -- *Content-Type* ヘッダで宣言された
  開 始境界がない。

* "FirstHeaderLineIsContinuationDefect" -- メッセージの最初のヘッダ
  が 継続行から始まっている。

* "MisplacedEnvelopeHeaderDefect" -- ヘッダブロックの途中に "Unix
  From" ヘッダがある。

* "MalformedHeaderDefect" -- コロンのないヘッダがある、あるいはそれ
  以 外の異常なヘッダである。

* "MultipartInvariantViolationDefect" -- メッセージが *multipart* だ
  と 宣言されているのに、サブパートが存在しない。注意: メッセージがこ
  の障 害を持っているとき、 "is_multipart()" メソッドはたとえその
  content- type が *multipart* であっても false を返すことがあります。
