except فرع معالجة الاستثناءات

آخر تحديث: 2026-09-22

except فرع معالجة الاستثناءات

except يتبع try مباشرة، ويعالج نوع الاستثناء المطابق (يمكن تحديد مجموعة)؛ as يمكنه ربط كائن الاستثناء.

التصنيفالكلمات المفتاحية والعبارات
النوعكلمة مفتاحية / عبارة
إصدار بايثونall

📝 الصياغة

try:
    block
except ExceptionType [as name]:
    handler

▶ مثال

عدّل الكود واضغط تشغيل لرؤية النتيجة في لوحة المخرجات:

المخرجات:

div by zero
المزيد من الحالات قادم قريباً — تابعونا.

❓ أسئلة شائعة

Qهل يمكن لـ `except` واحد التقاط عدة أنواع استثناءات؟
Aنعم — اكتبها كصف: `except (ValueError, TypeError) as e`. لاحظ أن استثناءات الفئات الفرعية يجب أن تأتي قبل فئتها الأم، وإلا يلتقطها فرع الفئة الأم أولاً.
Qالتقطت استثناءً لكن البرنامج ما زال ينهار. لماذا؟
Aغالبًا لأن نوع الاستثناء لم يتطابق؛ مثلًا الكود أثار `TypeError` فعلًا لكنك كتبت `except ValueError`. كما أن `except Exception` لا يلتقط `KeyboardInterrupt` و`SystemExit`، إذ ينحدران من `BaseException`.
Qما هو `e` في `except ... as e`؟
A`e` هو كائن الاستثناء؛ و`str(e)` يعطيك رسالة الخطأ. في بايثون 3، يُحذف المرجع المسمى `e` تلقائيًا عند نهاية كتلة `except`، فلا يبقى محتفظًا به لوقت طويل ويسبب مشكلات.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%