مدیریت خطا یا استثنا با try except در پایتون (Python)

مدیریت خطا یا استثنا با try except در پایتون (Python)

در همه زبان های برنامه نویسی خطاها جزو رایج ترین مباحث هستند، که دو نوع خطای زمان اجرا و زمان کامپایل در همه همه آن ها رایج است.

ما هم در این مقاله به همین مبحث در پایتون با عنوان try و except در پایتون می پردازیم که برای مدیریت این خطاها از آن استفاده می شود.

زمان مطالعه: 3 دقیقه
بازدید: 3126
پرسش و پاسخ: 0

در مبحث try-except ما سه بلوک کد داریم که عبارتند از : try, except, finally

در زیر کار این سه بلوک را برای شما بیان کرده ایم.

  1. بلوک try به شما امکان می دهد که یک بلوک کد را برای وجود خطا آزمایش کنید.
  2. بلوک except به شما اجازه رسیدگی یا handle کردن خطای ایجاد شده را می دهد تا رفتار مناسب را با آن مشخص نماید.
  3. بلوک finally به شما اجازه می دهد بدون در نظر گرفتن نتیجه try-except بلوک کد مورد نظر داخل آن اجرا شود.

رسیدگی به استثنا یا مدیریت خطا در پایتون

هنگامی که خطایی رخ می دهد که در اصطلاح به آن استثنا می گوییم، پایتون متوقف می شود و خطایی نشان داده می شود.

این استثناعات را می توانیم با دستور try انجام دهیم.

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

try:
  print(x)
except:
  print("An exception occurred")

رسیدگی به استثنا یا مدیریت خطا در پایتون

از آن جا که بلوک try خطا ایجاد می کند، بلوک except اجرا می شود.

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

مثال: این عبارت باعث ایجاد خطا می شود زیرا متغیر x تعریف نشده است.

print(x)

try catch در پایتون (Python)

استثناهای بیشتر

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

مثال: در این مثال دو except ایجاد شده است که یکی برای خطای تعریف نشدن مقدار x است و دیگری برای خطاهای موارد دیگر استفاده می شود که در این جا بلوک کد except با نام NameError اجرا می شود چون x تعریف نشده است.

try:
  print(x)
except NameError:
  print("Variable x is not defined")
except:
  print("Something else went wrong")

try catch در پایتون (Python)

بلوک else

می توانید از کلمه کلیدی else برای تعریف بلوکی از کد که در صورت عدم وجود خطا اجرا می شود استفاده کنید.

مثال: در این مثال بلوک try هیچ خطایی ایجاد نمی کند، پس بلوک except اجرا نمی شود و بلوک else اجرا می شود.

try:
  print("Hello")
except:
  print("Something went wrong")
else:
  print("Nothing went wrong")

بلوک else در مدیریت خطا پایتون (Python)

بلوک finally

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

مثال: در این مثال به دلیل اینکه بلوک finally تعریف شده است بدون در نظر گرفتن اینکه آیا بلوک try خطایی ایجاد می کند یا نه کد خود را اجرا می کند.

try:
  print(x)
except:
  print("Something went wrong")
finally:
  print("The 'try except' is finished")

بلوک finally در مدیریت خطا پایتون (Python)

بلوک finally همچنین می تواند برای بستن اشیاء پایتون و پاکسازی منابع هم کاربردی و مفید باشد.

مثال: در این مثال با استفاده از بلوک finally فایلی را که قابلیت نوشتن ندارد را باز می کند و در آن می نویسد.

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

بلوک finally در مدیریت خطا پایتون (Python)

در این جا برنامه می تواند بدون باز گذاشتن شی پرونده ادامه پیدا کند.

کلمه کلیدی raise در خطاها

شما به عنوان یک توسعه دهنده پایتون، در صورت بروز شرایطی می توانید یک استثنا را حذف کنید.

برای throw و یا raise کردن یک استثنا می توانید از کلمه کلیدی raise استفاده کنید.

مثال: در این مثال اگر x کمتر از 0 باشد برنامه را متوقف می کند و خطایی را ایجاد می کند.

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

کلمه کلیدی raise در try cath در پایتون (Python)

کلمه کلیدی raise برای افزایش یک استثنا استفاده می شود.

می توانید نوع خطایی را که ایجاد می شود و متنی که قرار است به کاربر نشان داده شود را مشخص کنید.

مثال: در این مثال اگر مقدار x یک عدد صحیح نباشد TypeError را یک واحد افزایش می دهد.

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

کلمه کلیدی raise در استثناء در پایتون (Python)

بهزاد میرزازاده
مسیر درست با پرسش های درست ساخته می شود

مشاهده تمام مطالب نویسنده