Python – مدیریت استثنا (Try Except)
مدیریت استثنا در پایتون
مدیریت استثناها در پایتون با استفاده از بلوکهای try
, except
, else
, و finally
انجام میشود. در زیر توضیحاتی در مورد هر یک از این بلوکها و نحوه استفاده از آنها ارائه شده است:
بلوکهای try و except
بلوک try
به شما این امکان را میدهد که کدی را امتحان کنید که ممکن است خطا ایجاد کند. اگر خطایی در بلوک try
رخ دهد، بلوک except
اجرا میشود.
مثال:
try:
print(x)
except:
print("An exception occurred")
در این مثال، چون متغیر x
تعریف نشده است، خطا ایجاد میشود و پیام "An exception occurred"
چاپ میشود.
مدیریت انواع مختلف استثناها
میتوانید چندین بلوک except
برای مدیریت انواع مختلف استثناها تعریف کنید.
مثال:
try:
print(x)
except NameError:
print("Variable x is not defined")
except:
print("Something else went wrong")
در این مثال، اگر خطای NameError
رخ دهد، پیام "Variable x is not defined"
چاپ میشود. برای سایر خطاها، پیام "Something else went wrong"
چاپ خواهد شد.
بلوک else
بلوک else
به شما این امکان را میدهد که کدی را اجرا کنید اگر هیچ خطایی در بلوک try
رخ ندهد.
مثال:
try:
print("Hello")
except:
print("Something went wrong")
else:
print("Nothing went wrong")
در این مثال، چون خطایی در بلوک try
رخ نمیدهد، پیام "Nothing went wrong"
چاپ میشود.
بلوک finally
بلوک finally
، در صورتی که مشخص شده باشد، همیشه اجرا میشود، چه خطایی در بلوک try
رخ دهد و چه نه. این بلوک معمولاً برای بستن فایلها یا تمیز کردن منابع استفاده میشود.
مثال:
try:
print(x)
except:
print("Something went wrong")
finally:
print("The 'try except' is finished")
در این مثال، پیام "The 'try except' is finished"
حتی اگر خطا در بلوک try
رخ دهد یا نه، چاپ میشود.
پرتاب استثنا
شما میتوانید به عنوان یک توسعهدهنده پایتون، در صورت وقوع یک شرط خاص، یک استثنا را پرتاب کنید. برای پرتاب (یا “raise”) استثنا، از کلمه کلیدی raise
استفاده کنید.
مثال:
x = -1
if x < 0:
raise Exception("Sorry, no numbers below zero")
در این مثال، اگر x
کمتر از 0 باشد، یک استثنا با پیام "Sorry, no numbers below zero"
پرتاب میشود.
مثال دیگر:
x = "hello"
if not type(x) is int:
raise TypeError("Only integers are allowed")
در این مثال، اگر نوع متغیر x
عدد صحیح نباشد، یک استثنا از نوع TypeError
با پیام "Only integers are allowed"
پرتاب میشود.
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام