freeCodeCamp/guide/arabic/javascript/error-handling-and-try-catc.../index.md

3.0 KiB

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