Files
freeCodeCamp/guide/arabic/javascript/error-handling-and-try-catch-throw/index.md
2019-06-20 16:53:53 -05:00

3.0 KiB

title, localeTitle
title localeTitle
Error Handling and Try Catch Throw خطأ في التعامل ومحاولة رمي الصيد

خطأ في التعامل ومحاولة رمي الصيد

يمثل try...catch..finally statement عبارة عن مجموعة من العبارات للتجربة ، ويحدد استجابة ، في حالة طرح استثناء. في try يحتوي على عبارة واحدة أو أكثر من البيانات، واحد على الأقل catch بند أو finally فقرة، أو كليهما.

try...catch

try {
   throw new Error('my error');
}
catch (e) {
  console.error(e.message);
}

// Output:
// my error

try...finally :

try {
   throw new Error('my error');
}
finally {
  console.error('finally');
}

// Output:
// finally

ملاحظة: عندما لا catch الخطأ ، فإنه في الواقع لا "يصطاد" ​​، حتى لو تم تنفيذ الحظر finally . وهذا يعني أن الخطأ سيستمر في كتلة try العليا (أو الكتلة الرئيسية).

try...catch...finally :

try {
   throw new Error('my error');
}
catch (e) {
  console.error(e.message);
}
finally {
  console.error('finally');
}

// Output:
// my error
// finally

الاستخدام النموذجي:

try {
   openFile(file);
   readFile(file)
}
catch (e) {
  console.error(e.message);
}
finally {
  closeFile(file);
}

try...catch متداخلة try...catch

بامكانك ايضا:

  • اعتبر عبارة try-catch داخل كتلة try .
  • رمي الخطأ صعودا.
try {
  try {
    throw new Error('my error');
  }
  catch (e) {
    console.error('inner', e.message);
    throw e;
  }
  finally {
    console.log('finally');
  }
}
catch (e) {
  console.error('outer', e.message);
}

// Output:
// inner my error
// finally
// outer my error

أنواع الخطأ

خطأ مرجعي
var x;
try {
  x = y + 1;   // y cannot be referenced (used)
}
catch(err) {
  console.log(err.name, err.message);
}
// ReferenceError y is not defined
خطأ في بناء الجملة
try {
    eval("alert('Hello)");   // Missing ' will produce an error
}
catch(err) {
    console.log(err.name,err.message);
}
// SyntaxError Invalid or unexpected token
خطأ مطبعي
var num = 1;
try {
    num.toUpperCase();   // You cannot convert a number to upper case
}
catch(err) {
    console.log(err.name, err.message);
}
// TypeError num.toUpperCase is not a function
خطأ URI
try {
    decodeURI("%%%");   // You cannot URI decode these percent signs
}
catch(err) {
    console.log(err.name, err.message);
}
// URIError URI malformed

معلومات اكثر:

MDN W3S