87 lines · 3.7 KB · TeX
RawDownload
\declaremodule{standard}{email.errors}\modulesynopsis{The exception classes used by the email package.} The following exception classes are defined in the\module{email.errors} module: \begin{excclassdesc}{MessageError}{}This is the base class for all exceptions that the \module{email}package can raise.  It is derived from the standard\exception{Exception} class and defines no additional methods.\end{excclassdesc} \begin{excclassdesc}{MessageParseError}{}This is the base class for exceptions thrown by the \class{Parser}class.  It is derived from \exception{MessageError}.\end{excclassdesc} \begin{excclassdesc}{HeaderParseError}{}Raised under some error conditions when parsing the \rfc{2822} headers ofa message, this class is derived from \exception{MessageParseError}.It can be raised from the \method{Parser.parse()} or\method{Parser.parsestr()} methods. Situations where it can be raised include finding an envelopeheader after the first \rfc{2822} header of the message, finding acontinuation line before the first \rfc{2822} header is found, or findinga line in the headers which is neither a header or a continuationline.\end{excclassdesc} \begin{excclassdesc}{BoundaryError}{}Raised under some error conditions when parsing the \rfc{2822} headers ofa message, this class is derived from \exception{MessageParseError}.It can be raised from the \method{Parser.parse()} or\method{Parser.parsestr()} methods. Situations where it can be raised include not being able to find thestarting or terminating boundary in a \mimetype{multipart/*} messagewhen strict parsing is used.\end{excclassdesc} \begin{excclassdesc}{MultipartConversionError}{}Raised when a payload is added to a \class{Message} object using\method{add_payload()}, but the payload is already a scalar and themessage's \mailheader{Content-Type} main type is not either\mimetype{multipart} or missing.  \exception{MultipartConversionError}multiply inherits from \exception{MessageError} and the built-in\exception{TypeError}. Since \method{Message.add_payload()} is deprecated, this exception israrely raised in practice.  However the exception may also be raisedif the \method{attach()} method is called on an instance of a classderived from \class{MIMENonMultipart} (e.g. \class{MIMEImage}).\end{excclassdesc} Here's the list of the defects that the \class{FeedParser} can find whileparsing messages.  Note that the defects are added to the message where theproblem was found, so for example, if a message nested inside a\mimetype{multipart/alternative} had a malformed header, that nested messageobject would have a defect, but the containing messages would not. All defect classes are subclassed from \class{email.errors.MessageDefect}, butthis class is \emph{not} an exception! \versionadded[All the defect classes were added]{2.4} \begin{itemize}\item \class{NoBoundaryInMultipartDefect} -- A message claimed to be a      multipart, but had no \mimetype{boundary} parameter. \item \class{StartBoundaryNotFoundDefect} -- The start boundary claimed in the      \mailheader{Content-Type} header was never found. \item \class{FirstHeaderLineIsContinuationDefect} -- The message had a      continuation line as its first header line. \item \class{MisplacedEnvelopeHeaderDefect} - A ``Unix From'' header was found      in the middle of a header block. \item \class{MalformedHeaderDefect} -- A header was found that was missing a      colon, or was otherwise malformed. \item \class{MultipartInvariantViolationDefect} -- A message claimed to be a      \mimetype{multipart}, but no subparts were found.  Note that when a      message has this defect, its \method{is_multipart()} method may return      false even though its content type claims to be \mimetype{multipart}.\end{itemize}