فئات الاستثناء المخصصة
بالنسبة للتطبيقات الاحترافية، الاعتماد فقط على الاستثناءات المدمجة مثل ValueError قد يكون غامضاً. من أفضل الممارسات تعريف فئات استثناء خاصة بك لجعل معالجة الأخطاء أكثر وضوحاً.
كيفية إنشاء استثناء مخصص
يجب أن ترث فئة الاستثناء المخصصة الخاصة بك من فئة Exception القياسية أو من استثناء مدمج أكثر تحديداً (مثل ValueError).
python
1. تعريف فئة الاستثناء المخصص
class InsufficientFundsError(Exception): """تثار عندما تتجاوز المعاملة الرصيد المتاح.""" def init(self, required, available, message="Insufficient funds for transaction."): self.required = required self.available = available self.message = message super().init(self.message)
2. استخدام الاستثناء المخصص في دالة
def withdraw(balance, amount): if amount > balance: # إثارة الاستثناء المخصص raise InsufficientFundsError(required=amount, available=balance)
return balance - amount
3. معالجة الاستثناء المخصص
initial_balance = 100 try: new_balance = withdraw(initial_balance, 200) print(f"New balance: {new_balance}") except InsufficientFundsError as e: print(f"Transaction failed: {e.message}") print(f"Needed ${e.required}, only had ${e.available}.")