try
به شما امکان می دهد یک بلوک کد را برای خطاها آزمایش کنید.
بلوک except
به شما امکان می دهد خطا را مدیریت کنید.
بلوک else
به شما اجازه می دهد تا زمانی که خطایی وجود ندارد کد را اجرا کنید.
بلوک finally
به شما امکان می دهد بدون در نظر گرفتن نتیجهی بلوک های try- و except، کد را اجرا کنید. مدیریت استثنا
try
کنترل کرد: مثال
try
یک استثنا ایجاد می کند، زیرا x
تعریف نشده است:
try:
print(x)
except:
print("An exception occurred")
از آنجایی که بلوک try یک خطا ایجاد می کند، بلوک except که به معنی استثنا است اجرا می شود.
بدون بلوک try، برنامه از کار می افتد و یک خطا ایجاد می کند:
چندین استثنا
شما می توانید هر تعداد بلوک استثنا (except) که می خواهید تعریف کنید، به عنوان مثال. اگر می خواهید یک بلوک کد خاص را برای نوع خاصی از خطا اجرا کنید:
مثال
اگر بلوک try یک NameError ایجاد کرد، یک پیام چاپ شود و برای سایر خطاها پیام دیگری چاپ شود:
try:
print(x)
except NameError:
print("Variable x is not defined")
except:
print("Something else went wrong")
Else
می توانید از کلمه کلیدی else
برای تعریف یک بلوک از کد استفاده کنید تا در صورت عدم وجود خطا، اجرا شود:
مثال
try
هیچ خطایی ایجاد نمی کند:
try:
print("Hello")
except:
print("Something went wrong")
else:
print("Nothing went wrong")
Finally
بلوک finally
، در صورت مشخص شدن، بدون در نظر گرفتن اینکه بلوک try
خطایی ایجاد کند یا خیر، اجرا خواهد شد.
مثال
try:
print(x)
except:
print("Something went wrong")
finally:
print("The 'try except' is finished")
این می تواند برای بستن اشیا و پاکسازی منابع مفید باشد:
مثال
تلاش برای باز کردن و نوشتن روی فایلی که قابل نوشتن نیست:
try:
f = open("demofile.txt")
try:
f.write("Lorum Ipsum")
except:
print("Something went wrong when writing to the file")
finally:
f.close()
except:
print("Something went wrong when opening the file")
برنامه می تواند بدون باز گذاشتن شی فایل ادامه یابد.
Raise an exception
بهعنوان یک توسعهدهنده پایتون، میتوانید در صورت وقوع یک شرط، یک استثنا ایجاد کنید.
برای پرتاب (یا بالا بردن) یک استثنا، از کلمه کلیدی raise استفاده کنید.
مثال
اگر x کمتر از 0 باشد، خطا را مطرح کنید و برنامه را متوقف کنید:
x = -1
if x < 0:
raise Exception("Sorry, no numbers below zero")
کلمه کلیدی raise برای ایجاد یک استثنا استفاده می شود.
شما میتوانید نوع خطا را مشخص کنید و متنی را که برای کاربر چاپ شود.
مثال
اگر x یک عدد صحیح نیست، TypeError را با دستور raise برگردانید:
x = "hello"
if not type(x) is int:
raise TypeError("Only integers are allowed")