Skip to content

Commit 2e3f295

Browse files
authored
fix conflict err-handler --try-catch
1 parent fb66cee commit 2e3f295

1 file changed

Lines changed: 10 additions & 29 deletions

File tree

1-js/10-error-handling/1-try-catch/article.md

Lines changed: 10 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -354,25 +354,17 @@ try {
354354

355355
بالطبع ، كل شيء ممكن! المبرمجون يرتكبون الأخطاء. حتى في المرافق المفتوحة المصدر التي يستخدمها الملايين لعقود - فجأة يمكن اكتشاف خطأ يؤدي إلى اختراق رهيب.
356356

357-
<<<<<<< HEAD
358-
في حالتنا هذه, `try..catch` المقصود لالتقاط أخطاء "البيانات غير صحيحة".ولكن بطبيعتها ، `catch` يحصل على *كل* الأخطاء من `try`. هنا يحصل على خطأ غير متوقع, ولكن لا يزال يظهر `"JSON Error"`. هذا خطأ ويجعل أيضًا تصحيح التعليمات البرمجية أكثر صعوبة.
357+
في حالتنا هذه, `try..catch` المقصود لالتقاط أخطاء "البيانات غير صحيحة".ولكن بطبيعتها ، `catch` يحصل على *كل* الأخطاء من `try`. هنا يحصل على خطأ غير متوقع, ولكن لا يزال يظهر `"JSON Error"`. هذا خطأ ويجعل أيضًا تصحيح التعليمات البرمجية أكثر صعوبة.القاعدة بسيطة:
359358

360-
لحسن الحظ ، يمكننا معرفة الخطأ الذي تحصلنا عليه ، على سبيل المثال من `name`:
361-
=======
362-
In our case, `try..catch` is placed to catch "incorrect data" errors. But by its nature, `catch` gets *all* errors from `try`. Here it gets an unexpected error, but still shows the same `"JSON Error"` message. That's wrong and also makes the code more difficult to debug.
363-
364-
To avoid such problems, we can employ the "rethrowing" technique. The rule is simple:
365-
366-
**Catch should only process errors that it knows and "rethrow" all others.**
359+
**يجب أن يقوم Catch بمعالجة الأخطاء التي يعرفها و "إعادة رمي" كل الآخرين فقط.**
367360

368-
The "rethrowing" technique can be explained in more detail as:
361+
يمكن شرح تقنية "إعادة الرمي" بمزيد من التفصيل على النحو التالي:
369362

370-
1. Catch gets all errors.
371-
2. In the `catch(err) {...}` block we analyze the error object `err`.
372-
2. If we don't know how to handle it, we do `throw err`.
363+
1. Catch يحصل على جميع الأخطاء.
364+
2. في `catch(err) {...}` نقوم بتحليل كائن الخطأ `err`.
365+
3. إذا لم نكن نعرف كيف نتعامل معها ، فنفعل `throw err`.
373366

374-
Usually, we can check the error type using the `instanceof` operator:
375-
>>>>>>> 69e44506c3e9dac74c282be37b55ba7ff122ae74
367+
عادة ، يمكننا التحقق من نوع الخطأ باستخدام العامل `instanceof`:
376368

377369
```js run
378370
try {
@@ -381,24 +373,13 @@ try {
381373
*!*
382374
if (err instanceof ReferenceError) {
383375
*/!*
384-
alert('ReferenceError'); // "ReferenceError" for accessing an undefined variable
376+
alert('ReferenceError'); // "ReferenceError" للوصول إلى متغير غير محدد
377+
385378
}
386379
}
387380
```
388381

389-
<<<<<<< HEAD
390-
القاعدة بسيطة:
391-
392-
**يجب أن يقوم Catch بمعالجة الأخطاء التي يعرفها و "إعادة رمي" كل الآخرين فقط.**
393-
394-
يمكن شرح تقنية "إعادة الرمي" بمزيد من التفصيل على النحو التالي:
395-
396-
1. Catch يحصل على جميع الأخطاء.
397-
2. في `catch(err) {...}` نقوم بتحليل كائن الخطأ `err`.
398-
2. إذا لم نكن نعرف كيف نتعامل معها ، فنفعل `throw err`.
399-
=======
400-
We can also get the error class name from `err.name` property. All native errors have it. Another option is to read `err.constructor.name`.
401-
>>>>>>> 69e44506c3e9dac74c282be37b55ba7ff122ae74
382+
يمكننا أيضًا الحصول على اسم فئة الخطأ من خاصية `err.name`. جميع الأخطاء الأصلية لديها هذه الخاصية. خيار آخر هو قراءة err.constructor.name.
402383

403384
في الكود أدناه ، نستخدم إعادة رمي بحيث `catch` يعالج فقط `SyntaxError`:
404385

0 commit comments

Comments
 (0)