أخطاء مخصصة في JavaScript

تمنحنا JavaScript مجموعة من 8 كائنات خطأ ، والتي يتم رفعها في تعبير try / catch اعتمادًا على نوع الخطأ. هم انهم:

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

لقد قمت بتحليلهم جميعًا فيأخطاء JavaScriptالدورة التعليمية.

هنا أريد أن أشرح كيفية إنشاء الأخطاء المخصصة الخاصة بك عن طريق توسيع فئة الخطأ الأساسية:

class OutOfFuelError extends Error {}

class FlatTireError extends Error {}

تسمح لك الأخطاء المخصصة بالتصرف بشكل مختلف بناءً على نوع الخطأ المحدد ، دون اللجوء إلى استخدام رسائل الخطأ لفهم نوع الخطأ.

try {
  //some code
} catch (err) {
  if (err instanceof OutOfFuelError) {
    //handle error
  } else if (err instanceof FlatTireError) {
    //handle error
  }
}

قبل أن تتمكن من القيام بذلك ، يجب بالطبع ذكر الخطأ صراحة في التعليمات البرمجية الخاصة بك:

try {
  const car = new Car() //imagine we have a Car object

  if (!car.fuel) {
    throw new OutOfFuelError('No fuel!')
  }
  if (car.flatTire) {
    throw new FlatTireError('Flat tire!')
  }
} catch (err) {
  if (err instanceof OutOfFuelError) {
    //handle error
  } else if (err instanceof FlatTireError) {
    //handle error
  }
}

أثناء إنشاء الخطأ ، يمكنك أيضًا تخصيص أي شيء متعلق بالفئة ، حتى تخصيص المعلمات التي يتلقاها المُنشئ إذا كنت بحاجة إلى:

class OutOfFuelError extends Error {
  constructor(message) {
    super(message)
    this.name = "OutOfFuelError"
  } 
}

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