آموزش پایتون

مدیریت فایل

Try..Except در پایتون

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

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

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

مثال

بلوک try یک استثنا ایجاد می کند، زیرا x تعریف نشده است:
				
					try:
  print(x)
except:
  print("An exception occurred")
				
			

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

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

مثال

این دستور یک خطا ایجاد می کند، زیرا x تعریف نشده است:
				
					print(x)
				
			

چندین استثنا

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

مثال

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

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

Else

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

مثال

در این مثال، بلوک try هیچ خطایی ایجاد نمی کند:
				
					try:
  print("Hello")
except:
  print("Something went wrong")
else:
  print("Nothing went wrong")
				
			

Finally

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

مثال

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

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

مثال

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

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

برنامه می تواند بدون باز گذاشتن شی فایل ادامه یابد.

Raise an exception

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

برای پرتاب (یا بالا بردن) یک استثنا، از کلمه کلیدی raise استفاده کنید.

مثال

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

				
					x = -1

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

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

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

مثال

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

				
					x = "hello"

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

آموزش پایتون

مدیریت فایل