كائنات خطأ جافا سكريبت

كائنات الخطأ المختلفة التي ستجدها في JavaScript

JavaScript gives us 8 كائنات الخطأ، والتي يتم رفعها في تعبير try / catch بناءً على نوع الخطأ:

  • Error
  • EvalError
  • RangeError
  • ReferenceError
  • SyntaxError
  • TypeError
  • URIError

دعونا نحلل كل واحد من هؤلاء.

Error

هذا هو الخطأ العام ، وهو الخطأ الذي ترث منه جميع كائنات الخطأ الأخرى. لن ترى مثيل لـErrorبشكل مباشر ، لكن JavaScript يتسبب في أحد الأخطاء الأخرى المذكورة أعلاه ، والتي ترث منError.

تحتوي على خاصيتين:

  • message: وصف الخطأ ، رسالة يمكن قراءتها بواسطة الإنسان والتي يجب أن تشرح الخطأ الذي حدث
  • name: نوع الخطأ الذي حدث (بافتراض قيمة اسم كائن الخطأ المحدد ، على سبيل المثال ،TypeErrorأوSyntaxError)

ويقدم طريقة واحدة فقط ،toString()، وهو المسؤول عن إنشاء سلسلة ذات معنى من الخطأ ، والتي يمكن استخدامها لطباعتها على الشاشة.

EvalError

تم تعريف هذا الخطأ في JavaScript الحديث ولكن لم يتم طرحه فعليًا بواسطة JavaScript ، ويظل لأغراض التوافق. تم تعريفه في ECMAScript 3 ولكنه غير موجود في المعيار منذ ECMAScript 5.1.

تم استخدامه للإشارة إلى أن الوظيفة العامةeval()تم استخدامه بشكل غير صحيح ، بطريقة لا تتوافق مع تعريفه

RangeError

أRangeErrorسيتم إطلاقه عندما لا تكون القيمة الرقمية في نطاق القيم المسموح بها.

أبسط مثال عندما تقوم بتعيين طول مصفوفة على قيمة سالبة:

[].length = -1 //RangeError: Invalid array length

أو عندما تقوم بتعيينه على رقم أعلى من4294967295

[].length = 4294967295 //4294967295
[].length = 4294967296 //RangeError: Invalid array length

(تم تحديد هذا الرقم السحري في مواصفات JavaScript باعتباره النطاق الأقصى لعدد صحيح بدون إشارة 32 بت ، مكافئ لـMath.pow(2, 32) - 1)

فيما يلي أخطاء النطاق الأكثر شيوعًا التي يمكنك اكتشافها في البرية:

ReferenceError

أReferenceErrorيشير إلى أنه تم اكتشاف قيمة مرجعية غير صالحة: يحاول برنامج JavaScript قراءة متغير غير موجود.

dog //ReferenceError: dog is not defined
dog = 2 //ReferenceError: dog is not defined

كن على علم بأن البيان أعلاه سيخلق ملفdogمتغير على الكائن العالمي إذا لم يتم تشغيلهالوضع الصارم.

فيما يلي الأخطاء المرجعية الأكثر شيوعًا التي يمكنك اكتشافها في البرية:

SyntaxError

أSyntaxErrorيظهر عند وجود خطأ في بناء الجملة في أحد البرامج.

فيما يلي بعض الأمثلة على التعليمات البرمجية التي تولد خطأ في بناء الجملة

بيان وظيفة بدون اسم:

function() {
  return 'Hi!'
}
//SyntaxError: function statement requires a name

فاصلة مفقودة بعد تعريف خاصية الكائن:

const dog = {
  name: 'Roger'
  age: 5
}
//SyntaxError: missing } after property list

فيما يلي أكثر أخطاء بناء الجملة شيوعًا التي يمكنك اكتشافها في البرية:

TypeError

أTypeErrorيحدث عندما يكون للقيمة نوع مختلف عن القيمة المتوقعة.

أبسط مثال هو محاولة استدعاء رقم:

1() //TypeError: 1 is not a function

إليك أكثر الأخطاء شيوعًا التي يمكنك اكتشافها في البرية:

URIError

يظهر هذا الخطأ عند استدعاء إحدى الوظائف العامة التي تعمل مع URIs:

  • decodeURI()
  • decodeURIComponent()
  • encodeURI()
  • encodeURIComponent()

وتمرير URI غير صالح.


المزيد من دروس js: