"email.errors": 예외와 결함 클래스
**********************************

**소스 코드:** Lib/email/errors.py

======================================================================

"email.errors" 모듈에는 다음과 같은 예외 클래스가 정의되어 있습니다:

exception email.errors.MessageError

   이것은 "email" 패키지가 발생시킬 수 있는 모든 예외의 베이스 클래스
   입니다. 표준 "Exception" 클래스에서 파생되며 추가 메서드를 정의하지
   않습니다.

exception email.errors.MessageParseError

   이것은 "Parser" 클래스에서 발생하는 예외의 베이스 클래스입니다.
   "MessageError"에서 파생됩니다. 이 클래스는 "headerregistry"에서 사
   용하는 구문 분석기에서도 내부적으로 사용됩니다.

exception email.errors.HeaderParseError

   메시지의 **RFC 5322** 헤더를 구문 분석할 때 일부 에러 조건에서 발생
   합니다. 이 클래스는 "MessageParseError"에서 파생됩니다. 메서드가 호
   출될 때 콘텐츠 유형을 알 수 없으면, "set_boundary()" 메서드는 이 에
   러를 발생시킵니다. "Header"는 특정 base64 디코딩 에러와 내장된 헤더
   를 포함하는 것으로 보이는 헤더를 만들려고 할 때 (즉, 연장 줄
   (continuation line)이어야 할 곳에 선행 공백이 없고 헤더처럼 보이는
   것이 있을 때) 이 에러를 발생시킬 수 있습니다.

exception email.errors.BoundaryError

   폐지되었고 더는 사용되지 않습니다.

exception email.errors.MultipartConversionError

   "add_payload()"를 사용하여 페이 로드가 "Message" 객체에 추가되었지
   만, 페이 로드가 이미 스칼라(scalar)이고 메시지의 *Content-Type* 메
   인 유형이 *multipart*도 아니고 누락되지도 않았으면 발생합니다.
   "MultipartConversionError"는 "MessageError"와 내장 "TypeError"에서
   다중 상속됩니다.

   "Message.add_payload()"는 폐지되었으므로, 실제로 이 예외는 거의 발
   생하지 않습니다. 그러나 "MIMENonMultipart"에서 파생된 클래스(예를
   들어 "MIMEImage")의 인스턴스에서 "attach()" 메서드를 호출하면 예외
   가 발생할 수도 있습니다.

exception email.errors.MessageDefect

   This is the base class for all defects found when parsing email
   messages. It is derived from "ValueError".

exception email.errors.HeaderDefect

   This is the base class for all defects found when parsing email
   headers. It is derived from "MessageDefect".

다음은 메시지를 구문 분석하는 동안 "FeedParser"가 찾을 수 있는 결함 목
록입니다. 문제가 발견된 메시지에 결함이 추가됨에 유의하십시오. 그래서,
예를 들어, *multipart/alternative* 내에 중첩된 메시지에 잘못된 헤더가
있으면, 해당 중첩 메시지 객체가 결함을 갖게 되지만 포함하는 메시지는
그렇지 않습니다.

모든 결함 클래스는 "email.errors.MessageDefect"의 서브 클래스입니다.

* "NoBoundaryInMultipartDefect" -- 메시지가 멀티 파트라고 주장했지만,
  *boundary* 파라미터가 없습니다.

* "StartBoundaryNotFoundDefect" -- *Content-Type* 헤더에서 주장하는 시
  작 경계를 찾지 못했습니다.

* "CloseBoundaryNotFoundDefect" -- 시작 경계가 발견되었지만, 해당하는
  종료 경계가 발견되지 않았습니다.

  버전 3.3에 추가.

* "FirstHeaderLineIsContinuationDefect" -- 메시지의 첫 번째 헤더 줄에
  연장 줄(continuation line)이 있습니다.

* "MisplacedEnvelopeHeaderDefect" - 헤더 블록 중간에 "Unix From" 헤더
  가 있습니다.

* "MissingHeaderBodySeparatorDefect" - 헤더를 구문 분석하는 중에 선행
  공백이 없지만 ':' 가 포함되지 않은 줄이 발견되었습니다. 그 줄이 본문
  의 첫 번째 줄을 나타내는 것으로 가정하여 구문 분석이 계속됩니다.

  버전 3.3에 추가.

* "MalformedHeaderDefect" -- 콜론이 없거나 다른 식으로 잘못된 헤더가
  발견되었습니다.

  버전 3.3부터 폐지됨: 이 결함은 여러 파이썬 버전에서 사용되지 않았습
  니다.

* "MultipartInvariantViolationDefect" -- 메시지가 *multipart*라고 주장
  했지만, 서브 파트가 없습니다. 메시지에 이 결함이 있으면, 콘텐츠 유형
  이 *multipart*라고 주장하더라도 "is_multipart()" 메서드는 "False"를
  반환할 수 있음에 유의하십시오.

* "InvalidBase64PaddingDefect" -- base64로 인코딩된 바이트열 블록을 디
  코딩할 때, 패딩이 올바르지 않습니다. 디코딩을 수행하기 위해 충분한
  패딩이 추가되지만, 바이트열을 디코딩한 결과는 유효하지 않을 수 있습
  니다.

* "InvalidBase64CharactersDefect" -- base64로 인코딩된 바이트열 블록을
  디코딩할 때, base64 알파벳 이외의 문자가 발견되었습니다. 문자는 무시
  되지만, 바이트열을 디코딩한 결과는 유효하지 않을 수 있습니다.

* "InvalidBase64LengthDefect" -- base64로 인코딩된 바이트열 블록을 디
  코딩할 때, 비 패딩 base64 문자 수가 유효하지 않습니다 (4의 배수보다
  1이 큽니다). 인코딩된 블록은 그대로 유지됩니다.

* "InvalidDateDefect" -- When decoding an invalid or unparsable date
  field. The original value is kept as-is.
