برای ایجاد و پرتاب یک استثنا (Exception)، میتوانید از دستور raise
استفاده کنید. این دستور باعث میشود اجرای برنامه متوقف شده و خطای مشخص شده صادر شود.
print(1)
raise ValueError
print(2) # این خط اجرا نمیشود
خروجی:
>>>
1
ValueError
>>>
نکته: هنگام استفاده از raise
باید نوع استثنا را مشخص کنید. همچنین میتوانید پیام خطای دلخواه یا دادههای اضافی را به عنوان آرگومان به استثنا ارسال کنید تا اطلاعات بیشتری ارائه شود. مثلاً:
name = "123"
raise NameError("Invalid name!")
خروجی:
>>>
NameError: Invalid name!
>>>
در بلوک except
نیز میتوان با استفاده از raise
بدون آرگومان، استثنای فعلی را دوباره پرتاب کرد. این کار برای انتقال خطا به لایههای بالاتر و یا ثبت خطا قبل از ادامهی پرتاب آن مفید است. مثلاً:
try:
num = 5 / 0
except:
print("An error occurred")
raise
خروجی:
>>>
An error occurred
ZeroDivisionError: division by zero
>>>
نکته جدید در نسخههای اخیر پایتون: در پایتون 3.11 به بعد، به کمک Exception Groups
میتوانید همزمان چند استثنا را پرتاب کنید. برای این کار از raise
به همراه ExceptionGroup
استفاده میشود که امکان مدیریت چند خطا را به صورت همزمان فراهم میکند.
raise ExceptionGroup("Multiple errors", [
ValueError("Invalid value"),
TypeError("Wrong type")
])
این قابلیت به خصوص در برنامههایی با پردازشهای موازی و همزمان بسیار کاربردی است و امکان مدیریت دقیقتر خطاهای چندگانه را فراهم میکند.