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

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

زمان مطالعه

5 دقیقه

تعداد بازدید

200

تعداد پرسش ها

0

افزودن به لیست علاقه مندی ها


برچسب ها :


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

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

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

زمان مطالعه

5 دقیقه

تعداد بازدید

200

تعداد پرسش ها

0

افزودن به لیست علاقه مندی ها


برچسب ها :


اشتراک گذاری این مطلب

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

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

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

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

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

بلوک except به شما اجازه رسیدگی یا handle کردن خطای ایجاد شده را می دهد تا رفتار مناسب را با آن مشخص نماید.

بلوک finally به شما اجازه می دهد بدون در نظر گرفتن نتیجه try-except بلوک کد مورد نظر داخل آن اجرا شود.

رسیدگی به استثنا

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

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

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

 

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

 

رسیدگی به استثنا در پایتون (Python)

 

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

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

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

 

print(x)

 

رسیدگی به استثنا در پایتون (Python)

 

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

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

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

 

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

 

استثناهای بیشتر در پایتون (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 در استثناء در پایتون (Python)

 

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

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

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

 

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

 

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

 

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

در مقاله بعدی در مورد user input با شما حرف خواهیم زد.

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


پرسش و پاسخ
0
دوره پیشنهادی
دوره پیشنهادی