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

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