Σε αυτό το σεμινάριο, θα μάθετε για τις δηλώσεις ρίψης JavaScript με τη βοήθεια παραδειγμάτων.
Στο προηγούμενο σεμινάριο, μάθατε να χειρίζεστε εξαιρέσεις χρησιμοποιώντας το JavaScript try… catch statement. Οι δηλώσεις δοκιμής και σύλληψης χειρίζονται εξαιρέσεις με έναν τυπικό τρόπο που παρέχεται από τη JavaScript. Ωστόσο, μπορείτε να χρησιμοποιήσετε τη throw
δήλωση για να περάσετε εξαιρέσεις που καθορίζονται από το χρήστη.
Στο JavaScript, η throw
δήλωση χειρίζεται εξαιρέσεις που καθορίζονται από το χρήστη. Για παράδειγμα, εάν ένας συγκεκριμένος αριθμός διαιρείται με το 0 και εάν πρέπει να λάβετε υπόψη Infinity
ως εξαίρεση, μπορείτε να χρησιμοποιήσετε τη throw
δήλωση για να χειριστείτε αυτήν την εξαίρεση.
Δήλωση ρίψης JavaScript
Η σύνταξη της δήλωσης ρίψης είναι:
throw expression;
Εδώ, expression
καθορίζει την τιμή της εξαίρεσης.
Για παράδειγμα,
const number = 5; throw number/0; // generate an exception when divided by 0
Σημείωση : Η έκφραση μπορεί να είναι συμβολοσειρά, boolean, αριθμός ή τιμή αντικειμένου.
Ρίξτε JavaScript με δοκιμή… πιάστε
Η σύνταξη του try… catch… throw
είναι:
try ( // body of try throw exception; ) catch(error) ( // body of catch )
Σημείωση : Όταν εκτελείται η δήλωση ρίψης, βγαίνει από το μπλοκ και πηγαίνει στο catch
μπλοκ. Και ο κώδικας κάτω από τη throw
δήλωση δεν εκτελείται.
Παράδειγμα 1: δοκιμάστε… πιάστε… ρίξτε Παράδειγμα
const number = 40; try ( if(number> 50) ( console.log('Success'); ) else ( // user-defined throw statement throw new Error('The number is low'); ) // if throw executes, the below code does not execute console.log('hello'); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); )
Παραγωγή
Παρουσιάστηκε σφάλμα Μήνυμα σφάλματος: Σφάλμα: Ο αριθμός είναι χαμηλός
Στο παραπάνω πρόγραμμα, ελέγχεται μια συνθήκη. Εάν ο αριθμός είναι μικρότερος από 51 , εμφανίζεται ένα σφάλμα. Και αυτό το σφάλμα ρίχνεται χρησιμοποιώντας τη throw
δήλωση.
Η throw
δήλωση καθορίζει τη συμβολοσειρά The number is low
ως έκφραση.
Σημείωση : Μπορείτε επίσης να χρησιμοποιήσετε άλλες ενσωματωμένο σφάλμα κατασκευαστές για τα τυπικά σφάλματα: TypeError
, SyntaxError
, ReferenceError
, EvalError
, InternalError
, και RangeError
.
Για παράδειγμα,
throw new ReferenceError('this is reference error');
Ανακαλύψτε μια εξαίρεση
Μπορείτε επίσης να χρησιμοποιήσετε τη throw
δήλωση μέσα στο catch
μπλοκ για να ανακατευθύνετε μια εξαίρεση. Για παράδειγμα,
const number = 5; try ( // user-defined throw statement throw new Error('This is the throw'); ) catch(error) ( console.log('An error caught'); if( number + 8> 10) ( // statements to handle exceptions console.log('Error message: ' + error); console.log('Error resolved'); ) else ( // cannot handle the exception // rethrow the exception throw new Error('The value is low'); ) )
Παραγωγή
Παρουσιάστηκε σφάλμα Μήνυμα σφάλματος: Σφάλμα: Αυτό έχει επιλυθεί
Στο παραπάνω πρόγραμμα, η throw
δήλωση χρησιμοποιείται εντός του try
μπλοκ για να εντοπίσει μια εξαίρεση. Και η throw
δήλωση επανεξετάζεται στο catch
μπλοκ που εκτελείται εάν το catch
μπλοκ δεν μπορεί να χειριστεί την εξαίρεση.
Εδώ, το catch
μπλοκ χειρίζεται την εξαίρεση και δεν παρουσιάζεται σφάλμα. Ως εκ τούτου, η throw
δήλωση δεν επανεξετάζεται.
Εάν το λάθος δεν αντιμετωπιστεί από το μπλοκ catch, η δήλωση ρίψης θα επανεξεταστεί με το μήνυμα σφάλματος Uncaught Error: Η τιμή είναι χαμηλή