Σε αυτό το σεμινάριο, θα μάθετε για τη δοκιμή… catch… τελικά δηλώσεις για τον χειρισμό εξαιρέσεων σε JavaScript με τη βοήθεια παραδειγμάτων.
Τα try
, catch
και finally
μπλοκ χρησιμοποιούνται για τον χειρισμό εξαιρέσεων (ένας τύπος σφάλματος). Πριν μάθετε για αυτά, πρέπει να γνωρίζετε για τους τύπους σφαλμάτων στον προγραμματισμό.
Τύποι σφαλμάτων
Στον προγραμματισμό, μπορεί να υπάρχουν δύο τύποι σφαλμάτων στον κώδικα:
Σφάλμα σύνταξης : Σφάλμα στη σύνταξη. Για παράδειγμα, αν γράψετε consol.log('your result');
, το παραπάνω πρόγραμμα προκαλεί σφάλμα σύνταξης. Η ορθογραφία console
είναι λάθος στον παραπάνω κώδικα.
Σφάλμα χρόνου εκτέλεσης : Αυτός ο τύπος σφάλματος παρουσιάζεται κατά την εκτέλεση του προγράμματος. Για παράδειγμα, η
κλήση μιας μη έγκυρης συνάρτησης ή μιας μεταβλητής.
Αυτά τα σφάλματα που παρουσιάζονται κατά τη διάρκεια του χρόνου ονομάζονται εξαιρέσεις . Τώρα, ας δούμε πώς μπορείτε να χειριστείτε αυτές τις εξαιρέσεις.
Δοκιμάστε το JavaScript… πιάστε το Statement
Η try… catch
δήλωση χρησιμοποιείται για τον χειρισμό των εξαιρέσεων. Η σύνταξή του είναι:
try ( // body of try ) catch(error) ( // body of catch )
Ο κύριος κωδικός βρίσκεται μέσα στο try
μπλοκ. Κατά την εκτέλεση του try
μπλοκ, εάν παρουσιαστεί κάποιο σφάλμα, πηγαίνει στο catch
μπλοκ. Το catch
μπλοκ χειρίζεται τα σφάλματα σύμφωνα με τις δηλώσεις αλιευμάτων.
Εάν δεν παρουσιαστεί σφάλμα, ο κωδικός μέσα στο try
μπλοκ εκτελείται και το catch
μπλοκ παραλείπεται.
Παράδειγμα 1: Εμφάνιση μη δηλωμένης μεταβλητής
// program to show try… catch in a program const numerator= 100, denominator = 'a'; try ( console.log(numerator/denominator); // forgot to define variable a console.log(a); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); )
Παραγωγή
NaN Παρουσιάστηκε σφάλμα Μήνυμα σφάλματος: ReferenceError: a δεν έχει οριστεί
Στο παραπάνω πρόγραμμα, δεν καθορίζεται μια μεταβλητή. Όταν προσπαθείτε να εκτυπώσετε μια μεταβλητή, το πρόγραμμα ρίχνει ένα σφάλμα. Αυτό το σφάλμα εντοπίζεται στο catch
μπλοκ.
Δοκιμάστε το JavaScript… πιάστε… τέλος Δήλωση
Μπορείτε επίσης να χρησιμοποιήσετε τη try… catch… finally
δήλωση για τον χειρισμό εξαιρέσεων. Το finally
μπλοκ εκτελεί και τα δύο όταν ο κώδικας εκτελείται με επιτυχία ή σε περίπτωση σφάλματος.
Η σύνταξη του try… catch… finally
μπλοκ είναι:
try ( // try_statements ) catch(error) ( // catch_statements ) finally() ( // codes that gets executed anyway )
Παράδειγμα 2: δοκιμάστε … πιάστε … τέλος Παράδειγμα
const numerator= 100, denominator = 'a'; try ( console.log(numerator/denominator); console.log(a); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); ) finally ( console.log('Finally will execute every time'); )
Παραγωγή
NaN Παρουσιάστηκε σφάλμα Μήνυμα σφάλματος: ReferenceError: a δεν έχει οριστεί Τέλος θα εκτελείται κάθε φορά
Στο παραπάνω πρόγραμμα, εμφανίζεται ένα σφάλμα και αυτό το σφάλμα εντοπίζεται από το catch
μπλοκ. Το finally
μπλοκ θα εκτελεστεί σε οποιαδήποτε κατάσταση (εάν το πρόγραμμα εκτελείται επιτυχώς ή εάν παρουσιαστεί σφάλμα).
Σημείωση : Πρέπει να χρησιμοποιήσετε catch
ή να finally
δηλώσετε μετά τη try
δήλωση. Διαφορετικά, το πρόγραμμα θα εμφανίσει ένα σφάλμα Uncaught SyntaxError: Λείπει το catch ή τελικά μετά την προσπάθεια.
Δοκιμάστε το JavaScript… πιάστε στο setTimeout
Το try… catch
δεν θα πιάσει την εξαίρεση εάν συνέβαινε σε κώδικα " timed ", όπως στο setTimeout (). Για παράδειγμα,
try ( setTimeout(function() ( // error in the code ), 3000); ) catch (e) ( console.log( "won't work" ); )
Τα παραπάνω try… catch
δεν θα λειτουργήσουν επειδή ο κινητήρας έχει ήδη εγκαταλείψει την try… catch
κατασκευή και η λειτουργία εκτελείται αργότερα.
Το try… catch
μπλοκ πρέπει να βρίσκεται μέσα σε αυτήν τη συνάρτηση για να πιάσει μια εξαίρεση μέσα σε μια χρονομετρημένη συνάρτηση. Για παράδειγμα,
setTimeout(function() ( try ( // error in the code ) catch ( console.log( "error is caught" ); ) ), 3000);
Μπορείτε επίσης να χρησιμοποιήσετε τη throw
δήλωση με τη try… catch
δήλωση για να χρησιμοποιήσετε εξαιρέσεις που καθορίζονται από το χρήστη. Για παράδειγμα, ένας συγκεκριμένος αριθμός διαιρείται με 0 . Εάν θέλετε να θεωρήσετε Infinity
σφάλμα στο πρόγραμμα, τότε μπορείτε να ρίξετε μια εξαίρεση που καθορίζεται από τον χρήστη χρησιμοποιώντας τη throw
δήλωση για να χειριστείτε αυτήν την κατάσταση.
Στο επόμενο σεμινάριο θα μάθετε για τη δήλωση ρίψης JavaScript.