Τύποι Εκτατών Καταστάσεων στο JavaScript
Στο JavaScript υπάρχουν πολύ λίγες καταστάσεις στις οποίες προκύπτουν εξαιρέσεις. Πρώτον, απλά επειδή υπάρχουν πολύ λίγα σημεία για να προκύψουν.
Δεύτερον, επειδή η ίδια η γλώσσα είναι "συγχωρητική": κάνει τα μάτια κουκού για πολλά πράγματα, για παράδειγμα, στη διαίρεση με το μηδέν ή σε λανθασμένο HTML κώδικα. Ακόμα και αν καθορίσετε λανθασμένη διαδρομή για την εικόνα που πρόκειται να φορτώσετε, το JavaScript θα σας συγχωρήσει και αυτό και δεν θα το θεωρήσει εξαίρεση.
Ωστόσο, υπάρχουν εκτατές καταστάσεις. Θα αναλύσουμε τις δύο πιο απλές και με το παράδειγμά τους θα μελετήσουμε την εργασία με τις εξαιρέσεις στο JavaScript.
Η πρώτη εξαίρεση προκύπτει όταν θέλουμε να αναλύσουμε λανθασμένο JSON:
let data = JSON.parse('{1,2,3,4,5}'); // αυτό το json είναι λανθασμένο
Και η δεύτερη εξαίρεση προκύπτει όταν ο τοπικός
χώρος αποθήκευσης, που έχει διατεθεί για τον ιστότοπό μας, ξεπεραστεί
(περισσότερα από 5 megabyte). Ας προκαλέσουμε τεχνητά
μια τέτοια εξαίρεση:
let str = '';
for (let i = 1; i <= 6 * 10 ** 6; i++) { // δημιουργούμε μια συμβολοσειρά περισσότερο από 5 mb
str += '+';
}
localStorage.setItem('key', str); // προσπαθούμε να γράψουμε στο storage
Πώς αντιδρά το JavaScript σε τέτοιες εκτατές καταστάσεις; Απλά εμφανίζει το σφάλμα στην κονσόλα και διακόπτει την περαιτέρω εκτέλεση του script.
Ο στόχος μας, ως προγραμματιστών, είναι
να εντοπίσουμε μια τέτοια κατάσταση και να την αντιμετωπίσουμε με κάποιο τρόπο,
χωρίς να αφήσουμε το πρόγραμμα να διακοπεί εντελώς
η εκτέλεσή του. Για αυτό
υπάρχει ειδική κατασκευή try-catch,
την οποία θα αναλύσουμε στα επόμενα μαθήματα.
Δημιουργήστε μια συμβολοσειρά αρκετά μεγάλου μεγέθους και προσπαθήστε να την γράψετε στον τοπικό χώρο αποθήκευσης. Βεβαιωθείτε ότι θα εμφανιστεί σφάλμα στην κονσόλα.
Προσπαθήστε να αναλύσετε λανθασμένο JSON. Βεβαιωθείτε ότι θα εμφανιστεί σφάλμα στην κονσόλα.