2018-10-12 20:35:31 +00:00
---
title: Error Handling and Try Catch Throw
localeTitle: خطأ في التعامل ومحاولة رمي الصيد
---
## خطأ في التعامل ومحاولة رمي الصيد
يمثل `try...catch..finally` statement عبارة عن مجموعة من العبارات للتجربة ، ويحدد استجابة ، في حالة طرح استثناء. في `try` يحتوي على عبارة واحدة أو أكثر من البيانات، واحد على الأقل `catch` بند أو `finally` فقرة، أو كليهما.
#### `try...catch`
2019-06-20 21:53:53 +00:00
```javascript
try {
throw new Error('my error');
}
catch (e) {
console.error(e.message);
}
// Output:
// my error
```
2018-10-12 20:35:31 +00:00
#### `try...finally` :
2019-06-20 21:53:53 +00:00
```javascript
try {
throw new Error('my error');
}
finally {
console.error('finally');
}
// Output:
// finally
```
2018-10-12 20:35:31 +00:00
_ملا حظة:_ عندما لا `catch` الخطأ ، فإنه في الواقع لا "يصطاد" ، حتى لو تم تنفيذ الحظر `finally` . وهذا يعني أن الخطأ سيستمر في كتلة `try` العليا (أو الكتلة الرئيسية).
#### `try...catch...finally` :
2019-06-20 21:53:53 +00:00
```javascript
try {
throw new Error('my error');
}
catch (e) {
console.error(e.message);
}
finally {
console.error('finally');
}
// Output:
// my error
// finally
```
2018-10-12 20:35:31 +00:00
الاستخدام النموذجي:
2019-06-20 21:53:53 +00:00
```javascript
try {
openFile(file);
readFile(file)
}
catch (e) {
console.error(e.message);
}
finally {
closeFile(file);
}
```
2018-10-12 20:35:31 +00:00
#### `try...catch` متداخلة `try...catch`
بامكانك ايضا:
* اعتبر عبارة `try-catch` داخل كتلة `try` .
* رمي الخطأ صعودا.
2019-06-20 21:53:53 +00:00
```javascript
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
```
2018-10-12 20:35:31 +00:00
#### أنواع الخطأ
##### خطأ مرجعي
2019-06-20 21:53:53 +00:00
```javascript
var x;
try {
x = y + 1; // y cannot be referenced (used)
}
catch(err) {
console.log(err.name, err.message);
}
// ReferenceError y is not defined
```
2018-10-12 20:35:31 +00:00
##### خطأ في بناء الجملة
2019-06-20 21:53:53 +00:00
```javascript
try {
eval("alert('Hello)"); // Missing ' will produce an error
}
catch(err) {
console.log(err.name,err.message);
}
// SyntaxError Invalid or unexpected token
```
2018-10-12 20:35:31 +00:00
##### خطأ مطبعي
2019-06-20 21:53:53 +00:00
```javascript
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
```
2018-10-12 20:35:31 +00:00
##### خطأ URI
2019-06-20 21:53:53 +00:00
```javascript
try {
decodeURI("%%%"); // You cannot URI decode these percent signs
}
catch(err) {
console.log(err.name, err.message);
}
// URIError URI malformed
```
2018-10-12 20:35:31 +00:00
#### معلومات اكثر:
[MDN ](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/try…catch ) [W3S ](https://www.w3schools.com/js/js_errors.asp )