finally والتنظيف المضمون
شغّل الكود سواء حدث استثناء أم لا
finally والتنظيف المضمون درس مجاني في Dart Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Dart Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Dart Academy 4 دروس في المجموع.
يجب أن يُنفَّذ التنظيف دائمًا
يجب إغلاق الملفات والاتصالات المفتوحة حتى عند فشل الشفرة. يوفر لكم Dart الكلمة finally لتنفيذ التنظيف في جميع الحالات. 🧹
كتلة finally
تُنفَّذ كتلة finally بعد try وcatch مهما كانت النتيجة. سواء نجح التنفيذ أم فشل، تُنفَّذ شفرتها دائمًا.
try {
work();
} finally {
cleanup();
}يعمل بعد النجاح
إذا انتهت كتلة try من دون أخطاء، فسيُشغّل Dart الكلمة finally مباشرةً بعدها قبل المتابعة.
يعمل بعد catch
عند التقاط استثناء، تُشغّل كتلة catch، ثم تُشغّل finally أيضًا. ويحدث ذلك بالترتيب نفسه.
try {
fail();
} catch (e) {
log(e);
} finally {
close();
}يعمل حتى من دون catch
يمكنكم استخدام try مع finally فقط، من دون catch. سيستمر انتشار الاستثناء، لكن ستُنفّذ عملية التنظيف أولًا أثناء خروجه.
try {
risky();
} finally {
release();
}لماذا لا نكرر التعليمات فحسب؟
من دون finally، ستضطرون إلى نسخ تعليمات التنظيف في مساري النجاح والخطأ. أما كتلة finally واحدة فتبقيها في موضع واحد.
التنظيف قبل إعادة الإلقاء
حتى عندما يستمر تصاعد الاستثناء من دون التقاطه، تُنفّذ finally أولًا، ولذلك لا تتسرب الموارد أبدًا.
إغلاق ملف بأمان
من الاستخدامات الشائعة: فتح مورد داخل try، واستخدامه، ثم إغلاقه في finally سواء نجحت القراءة أم لم تنجح.
try {
file.read();
} finally {
file.close();
}تجنب الإرجاع داخل finally
يتجاوز return الموجود داخل finally أي return أو استثناء سابق. اجعلوا finally للتنظيف فقط، لا للتحكم في تدفق التنفيذ.
ترتيب التنفيذ
تذكروا التسلسل: تُنفّذ try، ثم catch عند الحاجة، ثم finally أخيرًا. وينهي التنظيف تنفيذ الكتلة دائمًا.
try-catch-finally كاملة
يجمع هذا بين العناصر الثلاثة: العمل المحمي، ومعالجة الأخطاء، والتنظيف المضمون باستخدام finally في النهاية.
try {
open();
} catch (e) {
print(e);
} finally {
close();
}تحقق سريع
متى تُنفّذ كتلة finally؟
مراجعة
أصبحتم الآن تستخدمون finally للتنظيف المضمون الذي يُنفّذ في كل مسار: عند النجاح، أو الخطأ الملتقط، أو الرمي غير الملتقط. لا مزيد من التسربات. 🔒
تعلم Dart مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 30
- الدروس
- 120
الأسئلة الشائعة
هل درس «finally والتنظيف المضمون» مجاني؟
نعم — نص درس «finally والتنظيف المضمون» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Dart Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Dart Academy 4 دروس في المجموع.
ماذا ستتعلم في «finally والتنظيف المضمون»؟
شغّل الكود سواء حدث استثناء أم لا تتمرن على Dart Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Dart Academy؟
لا تُشترط خبرة سابقة. Dart Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «finally والتنظيف المضمون»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Dart Academy هذا؟
نعم. كل درس في Dart Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- throw وtry وcatch
- عبارات on وأنواع الاستثناءات
- finally والتنظيف المضمون
- الاستثناءات المخصصة وrethrow