Try Except

از ویکی‌کد
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Python-menu.png
موارد آموزشی
۱خانه
۲مقدمه
۳شروع کار
۴دستور زبان
۵اظهار نظرها
۶متغیرها
۷انواع داده‌ها
۸اعداد
۹تبدیل نوع
۱۰رشته‌ها
۱۱Booleans
۱۲عملگرها
۱۳لیست‌ها
۱۴تاپل‌ها
۱۵مجموعه‌ها
۱۶دیکشنری‌ها
۱۷If...Else
۱۸حلقهٔ While
۱۹حلقهٔ For
۲۰توابع
۲۱Lambda
۲۲آرایه‌ها
۲۳کلاس‌ها / اشیاء
۲۴ارث‌بری
۲۵Iteratorها
۲۶دامنه
۲۷ماژول‌ها
۲۸تاریخ و زمان
۲۹JSON
۳۰RegEx
۳۱PIP
۳۲Try...Except
۳۳ورودی کاربر
۳۴قالب‌بندی رشته
مدیریت فایل
یادگیری ماشین
MySQL در پایتون
MongoDB در پایتون
مرجع پایتون
مرجع ماژول
چگونه در پایتون؟
مثال‌های پایتون

بلوک try امکان تست کردن بلوک کد برای خطاها را فراهم می‌کند.[۱]

بلوک except امکان مدیریت خطاها را فراهم می‌کند.

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

مدیریت استثناء (به انگلیسی: Exception Handling)

بطور معمول هنگامی که خطا یا استثنائی رخ دهد، پایتون متوقف شده و یک پیام خطا تولید می‌کند.

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

مثال

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

1 try:
2   print(x)
3 except:
4   print("An exception occurred")


مشاهدهٔ نتیجه


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

بدون بلوک try، برنامه شکست خورده و خطا خواهد داد:

مثال

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

print(x)


مشاهدهٔ نتیجه


چند استثناء

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

مثال

اگر بلوک try یک خطای NameError بدهد و پیامی چاپ می‌کند:

1 try:
2   print(x)
3 except NameError:
4   print("Variable x is not defined")
5 except:
6   print("Something else went wrong")


مشاهدهٔ نتیجه


Else

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

مثال

در این مثال بلوک try هیچ خطایی تولید نمی‌کند:

1 try:
2   print("Hello")
3 except:
4   print("Something went wrong")
5 else:
6   print("Nothing went wrong")


مشاهدهٔ نتیجه


Finally

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

مثال

1 try:
2   print(x)
3 except:
4   print("Something went wrong")
5 finally:
6   print("The 'try except' is finished")


مشاهدهٔ نتیجه


این بلوک می‌تواند برای بستن اشیاء و منابع را خالی می‌کند:

مثال

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

1 try:
2   f = open("demofile.txt")
3   f.write("Lorum Ipsum")
4 except:
5   print("Something went wrong when writing to the file")
6 finally:
7   f.close()


مشاهدهٔ نتیجه


برنامه بدون اینکه فایل را باز بگذارد، می‌تواند ادامه پیدا کند.

رخ دادن یک استثناء

بعنوان یک توسعه دهنده پایتون می‌توانید انتخاب کنید که در اگر شرایط خاصی رخ دهد یک استثناء ایجاد شود (به انگلیسی: Throw).

برای Throw کردن (یا raise) یک استثناء، از کلمه کلیدی raise استفاده می‌شود.

مثال

اگر x کمتر از ۰ باشد، یک خطا رخ می‌دهد و برنامه متوقف می‌شود:

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


مشاهدهٔ نتیجه


کلمه کلیدی raise برای ایجاد (به انگلیسی: raise) یک استثناء استفاده می‌شود.

می‌توانید خودتان تعریف کنید چه نوع خطایی رخ دهد و چه متنی برای کاربر چاپ شود.

مثال

اگر x عدد صحیح نباشد یک TypeError (به فارسی: خطای نوع داده) رخ می‌دهد:

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


مشاهدهٔ نتیجه


منابع آموزشی