Try Except در Python

try این بلوک به شما اجازه می‌دهد تا بلوک کدی را برای یافتن اشتباهات تست کنید.

except این بلوک به شما اجازه می‌دهد تا اشتباهات را مدیریت کنید.

finally این بلوک به شما اجازه می‌دهد تا کد را اجرا کنید، خواه نتیجه بلوک try و except چه باشد.

مدیریت استثنا

وقتی که Python را فراخوانی می‌کنیم و اشتباه یا استثنا رخ می‌دهد، معمولاً متوقف می‌شود و پیام اشتباه ایجاد می‌شود.

می‌توان try عبارت برای مدیریت این استثناها استفاده می‌شود:

مثال

بلوک try یک استثنا ایجاد خواهد کرد، زیرا x تعریف نشده است:

try:
  چاپ شود (print(x'))
except:
  چاپ شود (An exception occurred')

اجرای مثال

به دلیل اینکه بلوک try اشتباه ایجاد کرده است، بلوک except اجرا خواهد شد.

اگر هیچ بلوک try‌ای نباشد، برنامه خواهد شکست و اشتباه ایجاد خواهد کرد:

مثال

این عبارت اشتباه ایجاد خواهد کرد، زیرا x تعریف نشده است:

چاپ شود (print(x'))

اجرای مثال

کاست‌های چندگانه

می‌توانید هر تعداد block exception که بخواهید تعریف کنید، به عنوان مثال، اگر می‌خواهید برای اشتباهات خاصی بلوک کدی خاصی اجرا شود:

مثال

اگر بلوک try اشتباهی ایجاد کند NameError، یک پیام چاپ خواهد شد، اگر اشتباه دیگری باشد، پیام دیگری چاپ خواهد شد:

try:
  چاپ شود (print(x'))
except NameError:
  چاپ شود (Variable x is not defined')
except:
  چاپ شود (Something else went wrong')

اجرای مثال

Else

اگر اشتباهی ایجاد نشده باشد، می‌توانید از else از کلیدواژه برای تعریف بلوک کدی که باید اجرا شود استفاده می‌شود:

مثال

در این مثال،try این بلوک هیچ اشتباهی ایجاد نمی‌کند:

try:
  چاپ شود (Hello')
except:
  چاپ شود (Something went wrong')
else:
  چاپ شود (Nothing went wrong')

اجرای مثال

Finally

اگر مشخص شده باشد finally اگر یک بلوک وجود دارد، خواه بلوک try اشتباهی ایجاد کند یا خیر، بلوک finally اجرا خواهد شد.

مثال

try:
  چاپ شود (print(x'))
except:
  چاپ شود (Something went wrong')
finally:
  چاپ شود (The 'try except' is finished')

اجرای مثال

این برای بستن اشیاء و پاکسازی منابع بسیار مفید است:

مثال

سعی کنید فایل غیرقابل نوشتن را باز و نوشته کنید:

try:
  f = open("demofile.txt")
  f.write("Lorum Ipsum")
except:
  print("Something went wrong when writing to the file")
finally:
  f.close()

اجرای مثال

برنامه می‌تواند ادامه دهد و فایل اوبجکت باز نشود.

استثنا تحریک کردن

به عنوان توسعه‌دهنده Python، می‌توانید انتخاب کنید که در صورت وقوع شرایط خاص استثنا تحریک کنید.

برای تحریک استثنا از raise کلمات کلیدی.

مثال

اگر x کمتر از صفر باشد، استثنا تحریک کنید و برنامه را متوقف کنید:

x = -1
if x < 0:
  raise Exception("Sorry, no numbers below zero")

اجرای مثال

raise کلمات کلیدی برای تحریک استثناها.

شما می‌توانید نوع استثنایی که تحریک می‌کنید و متنی که به کاربر نمایش می‌دهید را تعریف کنید.

مثال

اگر x عدد صحیح نیست، TypeError را تحریک کنید:

x = "hello"
if not type(x) is int:
  raise TypeError("Only integers are allowed")

اجرای مثال