جدول المحتويات
8.4. إثارة الاستثناءات #
تتيح عبارة raise للمبرمج فرض حدوث استثناء محدد. على سبيل المثال:
>>> raise NameError('HiThere')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: HiThere
يشير الوسيط الوحيد لـ raise إلى الاستثناء المطلوب إثارته. يجب أن يكون هذا إما مثيل استثناء أو فئة استثناء (فئة مشتقة من استثناء). إذا تم تمرير فئة استثناء، فسيتم إنشاؤها ضمنيًا عن طريق استدعاء مُنشئها بدون أي وسيطات:
raise ValueError # shorthand for 'raise ValueError()'
إذا كنت بحاجة إلى تحديد ما إذا كان قد تم رفع استثناء ولكنك لا تنوي معالجته، فإن صيغة أبسط من عبارة raise تسمح لك بإعادة رفع الاستثناء:
>>> try:
... raise NameError('HiThere')
... except NameError:
... print('An exception flew by!')
... raise
...
An exception flew by!
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
NameError: HiThere