# `email.errors`: Κλάσεις Εξαιρέσεων και Ελαττωμάτων

Πηγαίος κώδικας: 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

  Γίνεται raise εάν η μέθοδος `attach()` καλείται σε ένα στιγμιότυπο μιας κλάσης που προέρχεται από τη `MIMENonMultipart` (π.χ. `MIMEImage`). Η `MultipartConversionError` κληρονομεί ταυτόχρονα από την `MessageError` και την ενσωματωμένη `TypeError`.

exception email.errors.HeaderWriteError

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

exception email.errors.MessageDefect

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

exception email.errors.HeaderDefect

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

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

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

exception email.errors.NoBoundaryInMultipartDefect

  Ένα μήνυμα ισχυριζόταν ότι ήταν πολυμερές, αλλά δεν είχε παράμετρο boundary.

exception email.errors.StartBoundaryNotFoundDefect

  Το όριο εκκίνησης που αναφέρεται στην κεφαλίδα Content-Type δεν βρέθηκε ποτέ.

exception email.errors.CloseBoundaryNotFoundDefect

  Βρέθηκε ένα όριο εκκίνησης, αλλά δεν βρέθηκε ποτέ αντίστοιχο όριο κλεισίματος.

  Added in version 3.3.

exception email.errors.FirstHeaderLineIsContinuationDefect

  Το μήνυμα είχε μια γραμμή συνέχισης ως την πρώτη γραμμή κεφαλίδας.

exception email.errors.MisplacedEnvelopeHeaderDefect

  Βρέθηκε μια κεφαλίδα «Unix From» στη μέση ενός μπλοκ κεφαλίδων.

exception email.errors.MissingHeaderBodySeparatorDefect

  Βρέθηκε μια γραμμή κατά την ανάλυση των κεφαλίδων που δεν είχε αρχικό κενό αλλά δεν περιείχε “:”. Η ανάλυση συνεχίζεται στην περίπτωση που η γραμμή αντιπροσωπεύει την πρώτη γραμμή του σώματος.

  Added in version 3.3.

exception email.errors.MalformedHeaderDefect

  Βρέθηκε μια κεφαλίδα που της έλειπε μια άνω τελεία, ή ήταν αλλιώς παραμορφωμένη.

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

exception email.errors.MultipartInvariantViolationDefect

  Ένα μήνυμα δήλωσε ότι είναι multipart, αλλά δεν βρέθηκαν υπομέρη. Σημειώστε ότι όταν ένα μήνυμα έχει αυτό το σφάλμα, η μέθοδος του `is_multipart()` μπορεί να επιστρέψει `False` ακόμα κι αν ο τύπος περιεχομένου του δηλώνει ότι είναι multipart.

exception email.errors.InvalidBase64PaddingDefect

  Όταν αποκωδικοποιείται ένα μπλοκ από base64 κωδικοποιημένα bytes, η προσθήκη padding δεν ήταν σωστή. Προστίθεται αρκετό padding για να πραγματοποιηθεί η αποκωδικοποίηση, αλλά τα αποκωδικοποιημένα bytes που προκύπτουν μπορεί να είναι άκυρα.

exception email.errors.InvalidBase64CharactersDefect

  Όταν αποκωδικοποιείται ένα μπλοκ από base64 κωδικοποιημένα bytes, συναντήθηκαν χαρακτήρες εκτός του αλφαβήτου base64. Οι χαρακτήρες αγνοούνται, αλλά τα αποκωδικοποιημένα bytes που προκύπτουν μπορεί να είναι άκυρα.

exception email.errors.InvalidBase64LengthDefect

  Όταν αποκωδικοποιείται ένα μπλοκ από base64 κωδικοποιημένα bytes, ο αριθμός των χαρακτήρων base64 χωρίς συμπλήρωμα ήταν άκυρος (1 παραπάνω από ένα πολλαπλάσιο του 4). Το κωδικοποιημένο μπλοκ διατηρήθηκε ως έχει.

exception email.errors.InvalidDateDefect

  Όταν αποκωδικοποιείται ένα άκυρο ή μη αναγνώσιμο πεδίο ημερομηνίας. Η αρχική τιμή διατηρείται ως έχει.