⊗pyPmExcInr 74 of 129 menu

Εισαγωγή στις Εξαιρετικές Καταστάσεις στην Python

Σε αυτήν την ενότητα θα εξεταστούν οι εξαιρετικές καταστάσεις στην Python. Για να ξεκινήσουμε, πρέπει να κατανοήσουμε τι αποτελούν.

Κατά τη σύνταξη οποιουδήποτε προγράμματος, ο προγραμματιστής σιωπηρά υπολογίζει ότι όλοι οι χρησιμοποιούμενοι λογισμικο-τεχνικοί μηχανισμοί θα λειτουργούν σωστά.

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

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

Υπάρχουν επίσης καταστάσεις, στις οποίες συμβαίνει κάποιο σφάλμα, που δεν αποτελεί βλάβη. Για παράδειγμα, ρωτάτε το χρήστη για το email του, και αυτός εισάγει το email σε εσφαλμένη μορφή. Είναι σαφές ότι το πρόγραμμά μας δεν μπορεί να συνεχίσει να επεξεργάζεται το email, αφού αυτό δεν είναι σωστό. Ωστόσο, αυτό - δεν είναι εξαιρετική κατάσταση. Το πρόγραμμά μας μπορεί μόνο του να διορθώσει την κατάσταση: θα εμφανίσει ένα μήνυμα σφάλματος και ο χρήστης θα επαναλάβει τη εισαγωγή του.

Στην πραγματικότητα, η διαφορά μεταξύ βλάβης και μη βλάβης είναι αρκετά ασαφής. Ένα γεγονός, το οποίο ένα πρόγραμμα μπορεί να ερμηνεύσει ως εξαιρετική κατάσταση, ένα άλλο πρόγραμμα μπορεί να το ερμηνεύσει ως κάποιο σφάλμα, με το οποίο μπορεί να τα καταφέρει.

Το κριτήριο εδώ είναι το εξής: εάν κατά την εμφάνιση προβλήματος το πρόγραμμά σας μπορεί να συνεχίσει να εκτελεί αυτό για το οποίο προορίζεται, τότε αυτό δεν είναι εξαιρετική κατάσταση, αλλά εάν δεν μπορεί - τότε ναι, αυτό είναι εξαίρεση.

Για παράδειγμα, έχουμε ένα πρόγραμμα, το οποίο πρέπει να ρωτήσει το email του χρήστη. Εάν ο χρήστης εισάγει το email σε εσφαλμένη μορφή - αυτό δεν είναι βλάβη. Αυτό είναι ένα αναμενόμενο πρόβλημα και το πρόγραμμά μας θα ρωτά το χρήστη για το email τόσες φορές, μέχρι αυτός να το εισάγει σωστά.

Ας υποθέσουμε ότι το πρόγραμμά μας, το οποίο ρωτά για το email, πρέπει επίσης να στείλει αυτό το σωστό email μέσω του διαδικτύου. Τότε αποδεικνύεται ότι το διαδίκτυο δεν λειτουργεί. Αυτό είναι ήδη πρόβλημα: το πρόγραμμα δεν θα μπορέσει με κανέναν τρόπο να στείλει τα δεδομένα μέσω του διαδικτύου, εάν το διαδίκτυο δεν λειτουργεί. Το πρόγραμμα, ωστόσο, μπορεί να συνεχίσει την εκτέλεσή του: μπορεί να εμφανίσει πληροφορίες σχετικά με το πρόβλημα, να επαναλάβει την προσπάθεια αποστολής μετά από κάποιο χρονικό διάστημα, και ούτω καθεξής. Αλλά αυτές οι ενέργειες δεν είναι ακριβώς αυτό για το οποίο το πρόγραμμα είχε προοριστεί, καθώς η κύρια ενέργεια - η αποστολή του email το πρόγραμμα δεν θα μπορέσει να την εκτελέσει.

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

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη