⊗jsSpExcInr 137 of 294 menu

Εισαγωγή στις Εξαιρετικές Καταστάσεις στο JavaScript

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

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

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

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

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

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

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

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

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

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

Ελληνικά
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 για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη