نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر

نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
PY

منهج Python

دليل مرجعي شامل

كل اللغات
مدرسة البرمجة/منهج Python/صنع أخطاء مخصصة (Raising Exceptions)

صنع أخطاء مخصصة (Raising Exceptions)

raise exception pythonرفع الأخطاء pythoncustom exception pythonpython raise

الشرح

## رفع الاستثناءات (Raising Exceptions)

أحياناً تريد أنت أن تُثير خطأ عمداً عند حدوث حالة غير مقبولة.

### رفع استثناء: ```python raise ExceptionType("رسالة الخطأ") ```

### إنشاء استثناء مخصص: ```python class ValidationError(Exception): pass

class AgeError(ValueError): def __init__(self, age): super().__init__(f"العمر {age} غير صالح") self.age = age ```

### متى ترفع استثناءات؟ - عند تلقي مدخلات غير صالحة - عند حدوث حالة مستحيلة منطقياً - لإخبار من استدعى الدالة بالخطأ بوضوح

الصياغة (Syntax)

syntax
1def set_age(age):
2 if not isinstance(age, int):
3 raise TypeError("العمر يجب أن يكون عدداً صحيحاً")
4 if age < 0 or age > 150:
5 raise ValueError(f"العمر {age} غير صالح (0-150)")
6 return age
7
8try:
9 valid_age = set_age(-5)
10except ValueError as e:
11 print(f"خطأ في التحقق: {e}")

أمثلة عملية

مثال 1: استثناء مخصص

استثناء مخصص
1class InsufficientBalanceError(Exception):
2 def __init__(self, balance, amount):
3 self.balance = balance
4 self.amount = amount
5 super().__init__(
6 f"الرصيد غير كافٍ: لديك {balance} وتريد سحب {amount}"
7 )
8
9def withdraw(balance, amount):
10 if amount > balance:
11 raise InsufficientBalanceError(balance, amount)
12 return balance - amount
13
14try:
15 new_balance = withdraw(500, 1000)
16except InsufficientBalanceError as e:
17 print(e)

نصائح احترافية

  • —**نصائح رفع الاستثناءات:**
  • —ورّث استثناءاتك المخصصة من استثناء مناسب موجود
  • —رسالة الخطأ يجب أن تكون وصفية وتساعد في الحل
  • —استخدم `raise` وحدها (بدون حجج) داخل except لإعادة رفع نفس الخطأ
  • —وثّق الاستثناءات التي ترفعها في Docstring الدالة

الدرس السابق

اقتناص ومعالجة الأخطاء البرمجية (Try, Except, Finally)

الدرس التالي

مفهوم الكائنات والفئات (Classes & Objects)

نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر