تُفيد الأخطاء في الإبلاغ عند وجود خلل أو أمر غير متوقع في برنامج أو في جزء من الكود.
وهي كائنات في 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 على كائنات الخطأ، ما يتيح لك الحصول على تتبّع المكدّس للخطأ الذي طُرح.