معالجة الأخطاء في جافاسكرب JavaScript Errors
معالجة الأخطاء Errors, في بعض الأحيان تحتوي أكوادنا على أخطاء تحدث بسبب أخطاء من المبرمج.
و تكون عند إدخال المستخدم معلومة غير متوقعة و إستجابة خاطئة للخادم و العديد من الأسباب الأخرى.
نقوم بإستخدام الأمرين try و catch لإلتقاط الأخطاء Errors و يمكننا القيام بأشياء أكثر منطقية بدلاً من أن يتوقف البرنامج.
يُستخدم الأمر try للتجربة في حال لا يوجد أخطاء ضمن الأوامر التي بين القوسين {} بعد كلمة try ليتم تنفيذها.
أما الأمر catch يُستخدَم لعرض الأخطاء Errors في حال وجود خطأ في الأوامر التي بين القوسين {} بعد catch و سوف يعرض الأخطاء Errors لنا عبر طريقة العرض التي نختارها.
في البداية يعمل الكود في داخل try, وفي حال لا توجد أخطاء ضمن البرنامج يتم تجاهل catch.
و عند إصطياد أي خطأ يتوقف الكود في داخل try و بعدها يتم بدأ عمل catch.
المبرمج يجب أن يتوقع الأخطاء Errors و إستكشافها.
مثلاً عند الإدخال قد يقوم المستخدم user بإدخال بيانات نصية في مكان يجب أن تكون بيانات عددية و هذا أمر مرفوض لأن الأعداد لا تقبل سوى بيانات عددية.
أو إذا قام المستخدم عند القسمة على قيمة صفرية و يتم القسمة على صفر و يحدث خطأ Errors.
أو يقوم المستخدم بإدخال بيانات كثيرة و كبيرة جداً يؤدي إلى خطأ إسمه Overflow هذه الأخطاء يتوقعها المبرمج.
الشكل العام لإستخدام try and catch جافاسكربت
try{
الأوامر بحال كانت صحيحة تتنفذ
}
catch(error){
هنا يعرض الخطأ في حال وجود خطأ في الكود
}
أمثلة في إستخدام try و catch في جافاسكربت
مثال 1
let name = "Nusur Tech";
try{
alert(name);
}
catch(error){
console.error(error);
}
لقد أنشأنا مُتغير نوعه let و هو name و قيمته Nusur Tech.
و أعطينا الإخراج عبر alert و في حال توافق الذي بين القوسين في alert مع المتغير name يكون كل شيئ صحيح.
و بعده عرض الخطأ عبر console في حال لا يوجد توافق.
مثال 2
let name = "Nusur Tech";
try{
alert(tech);
}
catch(error){
console.error(error);
}
في هذا المثال لا يوجد توافق فسوف تكون النتيجة:
ReferenceError: "tech is not defined"
كما لاحظنا أعطانا خطأ يقول بأن العنصر tech غير موجودة لأنه لم يتم التوافق مع المتغير.