Επιβολή διαφόρων τύπων εξαιρέσεων στο JavaScript
Ας επιβάλουμε τη δική μας εξαίρεση και ας δούμε πώς θα συμπεριφερθεί το αντικείμενο με το σφάλμα σε αυτήν την περίπτωση:
try {
throw new Error('κείμενο εξαίρεσης');
} catch (error) {
console.log(error.name); // 'Error'
console.log(error.message); // 'κείμενο εξαίρεσης'
}
Όπως βλέπετε, ο τύπος της εξαίρεσής μας είναι 'Error'.
Ο ίδιος τύπος θα είναι για οποιεσδήποτε εξαιρέσεις, που επιβληθούν
με παρόμοιο τρόπο. Ωστόσο, αυτό δεν είναι πάντα
βολικό, καθώς, εάν μπορούμε να έχουμε
πολλαπλές εξαιρέσεις, δεν θα μπορούμε να τις διακρίνουμε
η μία από την άλλη.
Στο JavaScript προβλέπεται μια λύση σε αυτό το πρόβλημα:
μπορούμε να επιβάλουμε εξαιρέσεις όχι μόνο τύπου
Error, αλλά και οποιουδήποτε ενσωματωμένου στο JavaScript
τύπου σφάλματος, για παράδειγμα, TypeError,
SyntaxError, RangeError.
Ας επιβάλουμε, για παράδειγμα, μια εξαίρεση τύπου
SyntaxError:
try {
throw new SyntaxError('κείμενο εξαίρεσης');
} catch (error) {
console.log(error.name); // 'SyntaxError'
console.log(error.message); // 'κείμενο εξαίρεσης'
}
Επιβάλετε μια εξαίρεση τύπου TypeError.
Επιβάλετε εξαιρέσεις τύπου SyntaxError
και RangeError. Πιάστε αυτές τις εξαιρέσεις
χρησιμοποιώντας ένα μπλοκ try. Στο μπλοκ catch
εμφανίστε διαφορετικά μηνύματα σφάλματος για εξαιρέσεις
διαφορετικών τύπων.