برای ایجاد و پرتاب یک استثنا (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")
])
این قابلیت به خصوص در برنامههایی با پردازشهای موازی و همزمان بسیار کاربردی است و امکان مدیریت دقیقتر خطاهای چندگانه را فراهم میکند.