"email.errors": Clases de excepción y defecto
*********************************************

**Código fuente:** Lib/email/errors.py

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

Las siguientes clases de excepción se definen en el módulo
"email.errors":

exception email.errors.MessageError

   Esta es la clase base para todas las excepciones que el paquete
   "email"  puede lanzar. Se deriva de la clase estándar "Exception"
   y no define métodos adicionales.

exception email.errors.MessageParseError

   Esta es la clase base para las excepciones generadas por la clase
   "Parser". Se deriva de "MessageError". Esta clase también es
   utilizada internamente por el analizador sintáctico utilizado por
   "headerregistry".

exception email.errors.HeaderParseError

   Lanzada en algunas condiciones de error al analizar los encabezados
   **RFC 5322** de un mensaje, esta clase se deriva de
   "MessageParseError". El método "set_boundary()" lanzará este error
   si el tipo de contenido es desconocido cuando se llama al método.
   "Header" puede lanzar este error para ciertos errores de
   decodificación de base64, y cuando se intenta crear un encabezado
   que parece contener un encabezado incrustado (es decir, hay lo que
   se supone que es un línea de continuación que no tiene espacios en
   blanco iniciales y parece un encabezado).

exception email.errors.BoundaryError

   Deprecada y no utilizada actualmente.

exception email.errors.MultipartConversionError

   Se lanza cuando se agrega una carga útil (*payload*) a un objeto
   "Message" usando "add_payload()", pero la carga útil ya es un
   número escalar y el tipo principal del mensaje *Content-Type* no es
   *multipart* ni perdido (*missing*). "MultipartConversionError"
   hereda al mismo tiempo de "MessageError" y el incorporado
   "TypeError".

   Dado que "Message.add_payload()" está en desuso, esta excepción
   rara vez se presenta en la práctica. Sin embargo, la excepción
   también se puede lanzar si se llama al método "attach()" en una
   instancia de una clase derivada de "MIMENonMultipart" (por ejemplo
   "MIMEImage").

Aquí está la lista de defectos que "FeedParser" puede encontrar
mientras analiza mensajes. Tenga en cuenta que los defectos se agregan
al mensaje donde se encontró el problema, por ejemplo, si un mensaje
anidado dentro de un *multipart/alternative* tenía un encabezado mal
formado, ese objeto de mensaje anidado tendría un defecto, pero el
contenido los mensajes no lo harían.

Todas las clases de defectos se derivan de
"email.errors.MessageDefect".

* "NoBoundaryInMultipartDefect" -- Un mensaje que se dice que es
  multiparte, pero que no tiene el parámetro *boundary*.

* "StartBoundaryNotFoundDefect" -- El límite de inicio reclamado en el
  encabezado *Content-Type* nunca se encontró.

* "CloseBoundaryNotFoundDefect" -- Se encontró un límite de inicio,
  pero nunca se encontró un límite cercano correspondiente.

  Nuevo en la versión 3.3.

* "FirstHeaderLineIsContinuationDefect" -- El mensaje tenía una línea
  de continuación como primera línea de encabezado.

* "MisplacedEnvelopeHeaderDefect" -- Se encontró un encabezado "*Unix
  From*" en medio de un bloque de encabezado.

* "MissingHeaderBodySeparatorDefect" - Se encontró una línea al
  analizar sintácticamente los encabezados que no tenían espacios en
  blanco iniciales pero que no contenían ':'. El análisis continúa
  asumiendo que la línea representa la primera línea del cuerpo.

  Nuevo en la versión 3.3.

* "MalformedHeaderDefect" -- Se encontró un encabezado al que le
  faltaban dos puntos o tenía un formato incorrecto.

  Obsoleto desde la versión 3.3: Este defecto no se ha utilizado por
  varias versiones de Python.

* "MultipartInvariantViolationDefect"-- Un mensaje que se afirma ser
  *multipart*, pero no se encontraron subpartes. Tenga en cuenta que
  cuando un mensaje tiene este defecto, su método "is_multipart()"
  puede retornar "False" aunque su tipo de contenido afirma ser
  *multipart*.

* "InvalidBase64PaddingDefect" -- Al decodificar un bloque de bytes
  codificados en base64, el relleno no era correcto. Se agrega
  suficiente relleno (*padding*) para realizar la decodificación, pero
  los bytes decodificados resultantes pueden no ser válidos.

* "InvalidBase64CharactersDefect" -- Al decodificar un bloque de bytes
  codificados en *base64*, se encontraron caracteres fuera del
  alfabeto *base64*. Los caracteres se ignoran, pero los bytes
  decodificados resultantes pueden no ser válidos.

* "InvalidBase64LengthDefect" -- Al decodificar un bloque de bytes
  codificados en *base64*, el número de caracteres *base64* sin
  relleno no era válido (1 más que un múltiplo de 4). El bloque
  codificado se mantuvo tal cual.

* "InvalidDateDefect" -- Al decodificar una fecha no válida o un campo
  no parseable. El valor original se mantiene tal cual.
