الدرس 14: أنواع الاستثناءات، else و finally
ليست كل الأخطاء متشابهة — لكل منها نوع. int("x") يرفع ValueError، والوصول إلى مفتاح غير موجود في dict يرفع KeyError. يمكنك التقاط نوع محدد باستخدام except ValueError، فتعالج فقط الأخطاء التي تتوقعها. إضافة إلى ذلك، يعمل else عندما ينجح كل شيء، ويعمل finally مهما حدث — وهو مثالي لإنهاء الأمور.
except ValueError أشبه بقول 'التقط الكرات الحمراء فقط' بدلاً من 'التقط كل شيء'. else هو 'إن لم تسقط — تابع'، و finally هو 'في كل الأحوال، نظّف خلفك'.
- أنواع الاستثناءات
- لكل خطأ نوع — ValueError و KeyError وغيرها. except ValueError يلتقط ذلك النوع فقط.
- else (داخل try)
- كتلة تعمل فقط إذا انتهت كتلة try دون استثناء.
- finally
- كتلة تعمل دائماً في النهاية — سواء حدث استثناء أم لا.