الوحدة 13: التعامل مع الأخطاء (Error Handling) في JavaScript
إليك كورس كامل عن الوحدة 13: التعامل مع الأخطاء (Error Handling) في JavaScript، والذي يشرح كيفية التعامل مع الأخطاء في الكود بطريقة منظمة باستخدام الأدوات المختلفة التي تقدمها JavaScript.
الوحدة 13: التعامل مع الأخطاء (Error Handling) في JavaScript
الدرس 1: مقدمة في الأخطاء في JavaScript
- المفهوم الأساسي: الأخطاء في البرمجة هي المشكلات التي قد تحدث أثناء تنفيذ الكود، مما يوقف سير العمل أو يؤدي إلى نتائج غير متوقعة. التعامل مع الأخطاء بفعالية يساعد في توفير تجربة مستخدم أفضل ويضمن استقرار التطبيق.
- أنواع الأخطاء في JavaScript:
- الأخطاء النحوية (Syntax Errors): تحدث عندما يكون هناك خطأ في تركيب الكود (مثل نسيان الفواصل أو الأقواس).
- الأخطاء التشغيلية (Runtime Errors): تحدث أثناء تنفيذ الكود (مثل محاولة الوصول إلى قيمة غير موجودة).
- الأخطاء المنطقية (Logical Errors): تحدث عندما يكون الكود صحيحًا من الناحية النحوية والتشغيلية ولكن النتيجة النهائية غير صحيحة.
الدرس 2: كيفية التعامل مع الأخطاء باستخدام try...catch
- المفهوم:
try...catch
هو الآلية الأساسية في JavaScript للتعامل مع الأخطاء. تستخدم هذه البنية لمحاولة تنفيذ الكود داخل جزء الـtry
، وإذا حدث خطأ يتم الانتقال إلى جزء الـcatch
لمعالجة الخطأ.
1. بناء الجملة (Syntax) لـ try...catch
:
- الشرح:
try
: يحتوي على الكود الذي قد يسبب خطأ.catch
: يحتوي على الكود الذي يعالج الخطأ إذا حدث.error
: الكائن الذي يحتوي على تفاصيل الخطأ.
2. مثال عملي:
- في هذا المثال، القسمة على صفر ستؤدي إلى حدوث خطأ يتم التعامل معه في جزء الـ
catch
.
الدرس 3: استخدام finally
لضمان تنفيذ الكود
- المفهوم:
finally
هو جزء من بنيةtry...catch
يتم تنفيذه دائمًا سواء حدث خطأ أم لا. يُستخدم لضمان تنفيذ بعض العمليات مثل إغلاق الملفات أو تحرير الموارد.
1. بناء الجملة لـ try...catch...finally
:
2. مثال عملي:
- في هذا المثال، سيتم تنفيذ الكود في الـ
finally
بغض النظر عن حدوث خطأ أم لا.
الدرس 4: التعامل مع الأخطاء باستخدام throw
- المفهوم:
throw
يُستخدم لإلقاء (رمي) خطأ مخصص يدويًا داخل الكود. يمكن أن يكون هذا مفيدًا عندما تريد التأكد من أن تطبيقك يعالج أخطاء معينة بشكل مناسب.
1. بناء الجملة لـ throw
:
2. مثال عملي:
- في هذا المثال، إذا كان العمر أقل من صفر، سيتم رمي خطأ باستخدام
throw
.
الدرس 5: أنواع الأخطاء في JavaScript
- المفهوم: يوجد العديد من أنواع الأخطاء في JavaScript يمكن التعامل معها بشكل مختلف.
SyntaxError
: يحدث عندما يكون تركيب الكود غير صحيح.ReferenceError
: يحدث عندما يتم الإشارة إلى متغير غير معرف.TypeError
: يحدث عندما يتم التعامل مع نوع بيانات غير مناسب.RangeError
: يحدث عندما يتجاوز عدد معين الحد المسموح به (مثل محاولة تحديد طول مصفوفة أكبر من الحد المسموح به).URIError
: يحدث عند وجود مشكلة في معالجة URI.
1. مثال على TypeError
:
الدرس 6: استخدام أخطاء مخصصة (Custom Errors)
- المفهوم: يمكنك إنشاء أخطاء مخصصة في JavaScript باستخدام الكائن
Error
أو وراثته لإنشاء أخطاء تخص التطبيق.
1. بناء الجملة لإنشاء خطأ مخصص:
- في هذا المثال، قمنا بإنشاء خطأ مخصص باستخدام
CustomError
ووراثته من الكائنError
.
الدرس 7: التعامل مع الأخطاء في البرمجة غير المتزامنة (Asynchronous Error Handling)
- المفهوم: في JavaScript، عند التعامل مع البرمجة غير المتزامنة باستخدام الـ
Promise
أوasync/await
، يمكن أن تحدث الأخطاء أثناء التنفيذ أيضًا. يجب التعامل معها باستخدام طرق خاصة.
1. التعامل مع الأخطاء في الـ Promise
:
2. التعامل مع الأخطاء باستخدام async/await
:
- في هذا المثال، يتم استخدام
async/await
لإجراء طلب HTTP مع التعامل مع الأخطاء باستخدامtry...catch
.
الدرس 8: تلخيص الوحدة
- التعامل مع الأخطاء: يمكنك استخدام
try...catch
لالتقاط الأخطاء وتنفيذ الكود الاحتياطي. كما يمكن استخدامfinally
لضمان تنفيذ بعض العمليات بغض النظر عن وجود الخطأ. - استخدام
throw
: يمكنك رمي الأخطاء يدويًا باستخدامthrow
. - أنواع الأخطاء: تعرف على أنواع الأخطاء الشائعة مثل
SyntaxError
وTypeError
وReferenceError
. - الأخطاء غير المتزامنة: استخدام
Promise
وasync/await
للتعامل مع الأخطاء في البرمجة غير المتزامنة.
المشاريع العملية للوحدة 13:
- مشروع 1: بناء تطبيق يقوم بإجراء العمليات الحسابية والتعامل مع الأخطاء مثل القسمة على صفر.
- مشروع 2: إنشاء تطبيق يطلب بيانات من API ويتعامل مع الأخطاء مثل فشل الاتصال أو استجابة غير صالحة.
- مشروع 3: إنشاء تطبيق مخصص لرمي الأخطاء المخصصة واستخدامها في عمليات التحقق من المدخلات.