try التقاط الاستثناءات
آخر تحديث: 2026-09-22
try التقاط الاستثناءات
try يغلّف الشيفرة التي قد تطرح استثناءً؛ except يعالج الاستثناء، وfinally ينظّف الموارد.
| التصنيف | الكلمات المفتاحية والعبارات |
|---|---|
| النوع | كلمة مفتاحية / عبارة |
| إصدار بايثون | all |
📝 الصياغة
try:
block
except [ExceptionType [as name]]:
handler
[finally:
cleanup]
▶ مثال
عدّل الكود واضغط تشغيل لرؤية النتيجة في لوحة المخرجات:
المخرجات:
caught: invalid literal for int() with base 10: 'x'
🏷️ كلمات مفتاحية / عبارات ذات صلة
💡 حالات ذات صلة
المزيد من الحالات قادم قريباً — تابعونا.
❓ أسئلة شائعة
Qما ترتيب تنفيذ `try`/`except`/`else`/`finally`؟
Aأولاً يُنفَّذ جسم `try`. إذا لم يُثر استثناءً، يُنفَّذ `else` (إن وُجد) ثم يُنفَّذ `finally` في النهاية بغض النظر عن الاستثناءات. إذا أُثير استثناء، يُتجاوز `else`، ويُشتغل `except` المطابق، ثم يُنفَّذ `finally` في الأخير.
Qماذا يحدث إذا لم يتبع `except` نوع استثناء؟
Aيلتقط كل الاستثناءات، بما فيها ما لا ينبغي عادةً ابتلاعه مثل `KeyboardInterrupt` و`SystemExit`. يُنصح عمومًا بعدم استخدام `except` المجرد؛ فضّل `except Exception:` أو نوعًا أكثر تحديدًا.
Qهل يمكن استخدام المتغيرات المخصصة داخل كتلة `try` في كتلة `except`؟
Aنعم. بايثون لا تملك نطاقًا على مستوى الكتلة، فطالما وصل `try` إلى سطر الإسناد، يكون المتغير متاحًا في `except` و`else` و`finally` وبعد عبارة `try`.