Τα σφάλματα είναι χρήσιμα για να αναφέρεις ότι κάτι πάει λάθος ή είναι απροσδόκητο σε ένα πρόγραμμα ή σε ένα κομμάτι κώδικα.
Είναι αντικείμενα της JavaScript.
Η κύρια ιδιότητα αυτού του αντικειμένου είναι το message:
const error = new Error('Oops, something went wrong');
console.log(error.message);
// => "Oops, something went wrong"
Χρησιμοποιώντας τη σύνταξη throw, μπορείς να πετάξεις ένα σφάλμα.
throw new Error('Oops');
Όταν πετιέται ένα σφάλμα, η τρέχουσα εκτέλεση σταματάει και συνεχίζεται από το πρώτο μπλοκ catch της στοίβας κλήσεων.
try {
throw new Error('Oops');
} catch (error) {
console.log(error.message);
// => "Oops"
}
Όπως συμβαίνει με κάθε κλάση στη JavaScript, οι υποκλάσεις μπορούν να κληρονομήσουν από το Error για να δημιουργήσουν προσαρμοσμένα σφάλματα χρησιμοποιώντας τη λέξη-κλειδί extends.
Η σύνταξη instanceof ελέγχει αν το σφάλμα που πιάστηκε είναι στιγμιότυπο μιας συγκεκριμένης υποκλάσης του Error.
class CustomError extends Error {}
try {
// ... Code that may throw an error
} catch (error) {
if (error instanceof CustomError) {
console.log('The error thrown is an instance of the CustomError');
}
}
Εκτός από το αντικείμενο Error, υπάρχουν και άλλα ενσωματωμένα αντικείμενα σφαλμάτων. Μπορείς να μάθεις περισσότερα εδώ
Μπορείς επίσης να ορίσεις τον δικό σου προσαρμοσμένο τύπο σφάλματος δημιουργώντας μια κλάση που επεκτείνει έναν από τους ενσωματωμένους τύπους σφαλμάτων
class MyCustomError extends Error {}
Αν και η σύνταξη throw χρησιμοποιείται συνήθως για να πετάξει ένα αντικείμενο σφάλματος, η JavaScript είναι ευέλικτη και σου επιτρέπει να πετάξεις ένα string, ένα null ή οποιονδήποτε πρωτογενή τύπο.
Αν και αυτό δεν είναι στάνταρ στη JavaScript, τα περισσότερα περιβάλλοντα JavaScript υλοποιούν μια ιδιότητα stack στα αντικείμενα σφάλματος, επιτρέποντάς σου να πάρεις το ίχνος στοίβας του σφάλματος που πετάχτηκε.