## 12.2.6 Exception classes

The following exception classes are defined in the `email.Errors` module:

exception `MessageError`()
  This is the base class for all exceptions that the `email` package can raise. It is derived from the standard `Exception` class and defines no additional methods.

exception `MessageParseError`()
  This is the base class for exceptions thrown by the `Parser` class. It is derived from `MessageError`.

exception `HeaderParseError`()
  Raised under some error conditions when parsing the RFC 2822 headers of a message, this class is derived from `MessageParseError`. It can be raised from the `Parser.parse()` or `Parser.parsestr()` methods.

  Situations where it can be raised include finding a Unix-From header after the first RFC 2822 header of the message, finding a continuation line before the first RFC 2822 header is found, or finding a line in the headers which is neither a header or a continuation line.

exception `BoundaryError`()
  Raised under some error conditions when parsing the RFC 2822 headers of a message, this class is derived from `MessageParseError`. It can be raised from the `Parser.parse()` or `Parser.parsestr()` methods.

  Situations where it can be raised include not being able to find the starting or terminating boundary in a multipart/* message.

exception `MultipartConversionError`()
  Raised when a payload is added to a `Message` object using `add_payload()`, but the payload is already a scalar and the message's Content-Type: main type is not either multipart or missing. `MultipartConversionError` multiply inherits from `MessageError` and the built-in `TypeError`.