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

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

جزء من قسم Logic & Flow في رحلة Python على Coddy. الدرس 65 من 78.

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

ابدأ ببنية أساسية من 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 الأكثر تحديدًا قبل exceptions الأكثر عمومية.

challenge icon

التحدي

سهل

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

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

جرّب بنفسك

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

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

جميع دروس Logic & Flow

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