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