استفاده از ساختمان try-finally جهت مدیریت خطا

موسسه پایاپروژه به عنوان متصدی انجام پروژه های پایتون وظیفه ی خود می داند که در راستای آموزش نرم افزار پایتون گام های موثری را بردارد. با توجه به اینکه یک دوره آموزشی پایتون مستلزم تمرین و تلاش بسیار است. اما این موسسه تلاش می کند سهم کوچکی در جهت یادگیری استفاده از ساختمان try-finally جهت مدیریت خطا در پایتون داشته باشد.

انواع خطا در پایتون:

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

آموزش کار با try-finally :

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

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

;You do your operations here

عملیات را در اینجا انجام دهید

………………….

.Due to any exception, this may be skipped

ممکن است به دلیل وجود هر گونه خطایی این کد اجرا نشود

:finally

.This would always be executed

دستوری که حتما اجرا خواهد شد

نکته: نمی شود تابع else و finally را با هم به کار ببرید.

مثال 1:

/usr/bin/python!#

:try

fh = open(“testfile”, “w”)

fh.write(“This is my test file for exception handling!!”)

:finally

print “Error: can\’t find file or read data”

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

Error: can’t find file or read data

مثال بالا را می توان به صورت کوتاه تر و مفید تر نیز درج کنیم که در زیر می توانید آن را مشاهده کنید.

/usr/bin/python !#

:try

fh = open(“testfile”, “w”)

:try

fh.write(“This is my test file for exception handling!!”)

:finally

print “Going to close the file”

()fh.close

:except IOError

print “Error: can\’t find file or read data”

نحوه کار Try و Except :

دستور Try و Except برای رسیدگی به این خطاها در کد ما در پایتون استفاده می شود. بلوک try برای بررسی برخی از کدها برای وجود خطا استفاده می شود، یعنی کد داخل بلوک try زمانی اجرا می شود که هیچ خطایی در برنامه وجود نداشته باشد. در حالی که هر زمان که برنامه با خطا در بلوک try قبلی مواجه شود، کد داخل بلوک غیر از آن اجرا می شود.

رفع خطای Try-Except :

ابتدا، عبارت try اجرا می شود، یعنی کد بین عبارت try و except

اگر هیچ خطا وجود نداشته باشد، آنگاه فقط عبارت try اجرا می شود.

اگر هر خطایی رخ دهد، بند try حذف می شود و بند except اجرا می شود.

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

نکته: دستور try می تواند بیش از یک بند except داشته باشد.

مثال: در این مثال یک خطا وجود دارد بنابراین فقط عبارت استثنا اجرا می شود.

 Python code to illustrate#

 working of try3 #

:def divide(x, y)

: try

        Floor Division : Gives only Fractional Part as Answer #

        result = x // y

        print(“Yeah ! Your answer is :”, result)

 :except ZeroDivisionError

        print(“Sorry ! You are dividing by zero “)

 Look at parameters and note the working of Program #

divide(3, 0)

 

خروجی: 
 

Sorry ! You are dividing by zero

 

مثال: مثال زیر تنها یک خطا را مدیریت می کند.

/usr/bin/python!#

. Define a function here#

:def temp_convert(var)

:try

return int(var)

:except ValueError, Argument

print “The argument does not contain numbers\n”, Argument

.Call above function here#

;temp_convert(“xyz”)

نتیجه ی زیر را بدست می دهد:

The argument does not contain numbers

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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

2 − 1 =

سفارش پروژه