Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

التعامل مع استثناءات متعددة

جزء من قسم المنطق وتدفق التنفيذ في رحلة Python على Coddy. الدرس 65 من 78.

في Python، يمكننا Handle أنواع مختلفة من exceptions في كتل except منفصلة. يتيح لنا ذلك الاستجابة بشكل مختلف بناءً على error المحدد الذي occurred.

ابدأ ببنية أساسية من try-except:

try:
    # كود قد يرفع استثناءات
    pass
except Exception as e:
    # تعامل مع أي استثناء
    pass

لمعالجة استثناءات متعددة، أضف كتل except محددة:

try:
    number = int(input("Enter a number: "))
    result = 10 / number
    print(result)
except ValueError:
    print("That's not a valid number!")
except ZeroDivisionError:
    print("Cannot divide by zero!")

يمكنك أيضًا التقاط أنواع استثناءات متعددة في كتلة except واحدة:

try:
    # بعض الكود
    pass
except (ValueError, TypeError):
    print("Invalid input type!")

ترتيب كتل except مهم - ضع دائمًا exceptions الأكثر تحديدًا قبل الاستثناءات الأكثر عمومية.

challenge icon

التحدي

سهل

أنشئ دالة تُسمّى process_data وتقوم بما يلي:

  1. تأخذ إدخالًا من نوع string يمثّل بيانات محتملة
  2. تحاول convert الإدخال إلى integer، ثم تحسب 100 مقسومًا على ذلك العدد الصحيح
  3. تُرجع result
  4. تتعامل مع 3 exceptions محتملة على الأقل: 
    • ValueError إذا تعذّر تحويل input إلى integer (print "Input must be a number!")
    • ZeroDivisionError إذا كان input يساوي 0 (print "Cannot divide by zero!")
    • أي exception أخرى باستخدام معالج عام (print "An unexpected error occurred!")

جرّب بنفسك

def process_data(input_string):
    try:
        # حاول تحويل سلسلة الإدخال إلى عدد صحيح
        
        # احسب 100 مقسومًا على قيمة الإدخال
        
        # أرجع النتيجة
        
    except ValueError:
        # تعامل مع الحالة التي لا يمكن فيها تحويل الإدخال إلى عدد صحيح
        
    except ZeroDivisionError:
        # تعامل مع الحالة التي يكون فيها الإدخال صفرًا
        
    except:
        # تعامل مع أي استثناءات أخرى غير متوقعة
        
    return None
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم Python عبر الإنترنت