# `email.errors`: Exception and Defect classes

Πηγαίος κώδικας: Lib/email/errors.py

Οι εξής κλάσεις εξαιρέσεων ορίζονται στο module `email.errors`:

exception email.errors.MessageError

  Αυτή είναι η βασική κλάση για όλες τις εξαιρέσεις που μπορεί να κάνει raise το module `email`. Παράγεται από την τυπική κλάση `Exception` και δεν ορίζει επιπλέον μεθόδους.

exception email.errors.MessageParseError

  Αυτή είναι η βασική κλάση για τις εξαιρέσεις που γίνονται raise από την κλάση `Parser`. Κληρονομεί από την `MessageError`. Αυτή η κλάση χρησιμοποιείται επίσης εσωτερικά από τον αναλυτή που χρησιμοποιείται από το `headerregistry`.

exception email.errors.HeaderParseError

  Γίνεται raise κάτω από ορισμένες συνθήκες σφάλματος κατά την ανάλυση των κεφαλίδων RFC 5322 ενός μηνύματος, αυτή η κλάση προέρχεται από την `MessageParseError`. Η μέθοδος `set_boundary()` θα κάνει raise αυτό το σφάλμα αν ο τύπος περιεχομένου είναι άγνωστος όταν καλείται η μέθοδος. Η `Header` μπορεί να κάνει raise αυτό το σφάλμα για ορισμένα σφάλματα αποκωδικοποίησης base64, καθώς και όταν επιχειρείται η δημιουργία μιας κεφαλίδας που φαίνεται να περιέχει ενσωματωμένη κεφαλίδα (δηλαδή υπάρχει μια γραμμή συνέχειας που δεν έχει προηγούμενο κενό διάστημα και μοιάζει με κεφαλίδα).

exception email.errors.BoundaryError

  Έχει καταργηθεί και δεν χρησιμοποιείται πλέον.

exception email.errors.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`.

  Since `Message.add_payload()` is deprecated, this exception is rarely raised in practice. However the exception may also be raised if the `attach()` method is called on an instance of a class derived from `MIMENonMultipart` (e.g. `MIMEImage`).

exception email.errors.HeaderWriteError

  Γίνεται raise όταν παρουσιάζεται σφάλμα όταν το `generator` εξάγει κεφαλίδες.

exception email.errors.MessageDefect

  Αυτή είναι η βασική κλάση για όλα τα ελαττώματα που εντοπίζονται κατά την ανάλυση μηνυμάτων email. Είναι παράγωγη της `ValueError`.

exception email.errors.HeaderDefect

  Αυτή είναι η βασική κλάση για όλα τα ελαττώματα που εντοπίζονται κατά την ανάλυση των κεφαλίδων email. Είναι παράγωγο της `MessageDefect`.

Ακολουθεί η λίστα με τα ελαττώματα που μπορεί να εντοπίσει η `FeedParser` κατά την ανάλυση των μηνυμάτων. Σημειώστε ότι τα ελαττώματα προστίθενται στο μήνυμα όπου βρέθηκε το πρόβλημα, οπότε για παράδειγμα, εάν ένα μήνυμα που είναι ένθετο μέσα σε ένα multipart/alternative είχε μια παραμορφωμένη κεφαλίδα, αυτό το ένθετο αντικείμενο μηνύματος θα είχε ένα ελάττωμα, αλλά τα μηνύματα που το περιέχουν όχι.

Όλες οι κλάσεις ελαττωμάτων είναι υποκλάσεις της `email.errors.MessageDefect`.

- `NoBoundaryInMultipartDefect` – A message claimed to be a multipart, but had no boundary parameter.

- `StartBoundaryNotFoundDefect` – The start boundary claimed in the Content-Type header was never found.

- `CloseBoundaryNotFoundDefect` – A start boundary was found, but no corresponding close boundary was ever found.

  Νέο στην έκδοση 3.3.

- `FirstHeaderLineIsContinuationDefect` – The message had a continuation line as its first header line.

- `MisplacedEnvelopeHeaderDefect` - A «Unix From» header was found in the middle of a header block.

- `MissingHeaderBodySeparatorDefect` - A line was found while parsing headers that had no leading white space but contained no “:”. Parsing continues assuming that the line represents the first line of the body.

  Νέο στην έκδοση 3.3.

- `MalformedHeaderDefect` – A header was found that was missing a colon, or was otherwise malformed.

  Αποσύρθηκε στην έκδοση 3.3: Αυτό το σφάλμα δεν έχει χρησιμοποιηθεί εδώ και πολλές εκδόσεις της Python.

- `MultipartInvariantViolationDefect` – A message claimed to be a multipart, but no subparts were found. Note that when a message has this defect, its `is_multipart()` method may return `False` even though its content type claims to be multipart.

- `InvalidBase64PaddingDefect` – When decoding a block of base64 encoded bytes, the padding was not correct. Enough padding is added to perform the decode, but the resulting decoded bytes may be invalid.

- `InvalidBase64CharactersDefect` – When decoding a block of base64 encoded bytes, characters outside the base64 alphabet were encountered. The characters are ignored, but the resulting decoded bytes may be invalid.

- `InvalidBase64LengthDefect` – When decoding a block of base64 encoded bytes, the number of non-padding base64 characters was invalid (1 more than a multiple of 4). The encoded block was kept as-is.

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