Η σωστή διαχείριση εξαιρέσεων βοηθά στην πρόληψη των τραυμάτων και εξασφαλίζει ότι το πρόγραμμα μπορεί να ανακτήσει ή να παράσχει ουσιαστική ανατροφοδότηση όταν συμβαίνουν σφάλματα.

Κατανόηση των εξαιρέσεων Python

Εξαιρέσεις είναι σφάλματα που διαταράσσουν την κανονική ροή ενός προγράμματος. Η Python έχει ενσωματωμένες κατηγορίες εξαίρεσης, όπως [[LFT:0]]ValueError[[LFT:1]] και [[LFT:2]]TypeError[[[LFT:3]]], οι οποίες εγείρονται όταν συμβαίνουν συγκεκριμένα ζητήματα. Αναγνωρίζοντας αυτές τις εξαιρέσεις επιτρέπει στους προγραμματιστές να χειρίζονται τα λάθη με χάρη.

Χρήση δοκιμασιών εκτός από τα μπλοκ

Η κύρια μέθοδος χειρισμού εξαιρέσεων στην Python είναι το try-except[] block. Ο κώδικας που μπορεί να αυξήσει μια εξαίρεση τοποθετείται στο εσωτερικό του [ try] block, ενώ ο κώδικας χειρισμού σφαλμάτων τοποθετείται στο εσωτερικό του [] εκτός] block.

Παράδειγμα:

try:
x = int(εισαγωγή( ⁇ Εισάγετε έναν αριθμό: ⁇ )
εκτός από τον τιμήError:]
print( ⁇ Άκυρη είσοδος. Παρακαλώ εισάγετε έναν έγκυρο αριθμό ⁇ )

Χειρισμός πολλαπλών εξαιρέσεων

Πολλαπλές εξαιρέσεις μπορούν να διαχειριστούν με την προσθήκη πολλαπλών εκτός μπλοκ. Αυτό επιτρέπει συγκεκριμένες απαντήσεις σε διαφορετικούς τύπους σφαλμάτων.

Παράδειγμα:

try:
αποτέλεσμα = 10 / divisor
εκτός από το ZeroDivisionError:]
εκτύπωση ( ⁇ Δεν μπορεί να διαιρεθεί με μηδέν ⁇ )
εκτός από το TypeError:]
εκτύπωση ( ⁇ Δεν υπάρχει έγκυρος τύπος ⁇ )

Χρησιμοποιώντας επιτέλους και αλλιώς

Το τελικό μπλοκ εκτελεί τον κωδικό ανεξάρτητα από το αν συνέβη εξαίρεση. Το ελλς μπλοκ τρέχει αν δεν υπάρχει εξαίρεση.

Παράδειγμα:

try:
αρχείο = ανοικτό( ⁇ data.txt ⁇ ⁇ r ⁇ [
εκτός αρχείουNotFoundError:]
εκτύπωση( ⁇ Αρχείο που δεν βρέθηκε ⁇ ] [
else:]
] εκτύπωση( ⁇ Αρχείο που άνοιξε με επιτυχία ⁇ )
τελικά: [
αρχείο.close]

Βέλτιστες πρακτικές για τον χειρισμό εξαιρούμενων

  • Ειδικές εξαιρέσεις αλιευμάτων αντί να χρησιμοποιούν γενικό ] εκτός από:.
  • Αποφύγετε τη χρήση εξαιρέσεων για τη ροή ελέγχου.
  • Εξαιρέσεις καταγραφής για σκοπούς αποσφαλμάτωσης.
  • Χρήση τελικά για την αποδέσμευση πόρων.