Try Except Python

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

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

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

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

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

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

مثال

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

try:
  پرنٹ(x)
except:
  پرنٹ("An exception occurred")

مثال اجرا کن

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

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

مثال

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

پرنٹ(x)

مثال اجرا کن

تعدادی از خطاهای متعدد

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

مثال

اگر بلاک try خطا ایجاد کند NameError، یک پیام چاپ می‌کند، اگر خطای دیگری باشد، پیام دیگری چاپ می‌کند:

try:
  پرنٹ(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:
  پرنٹ(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")

مثال اجرا کن