PythonForNetworkEngineer 33 - Python Try - Except - Else - Finally PDF

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

http://crossnetmm.

com/

8.3 Python try……except……else……Finally

တစ္ခုမွထားရမွာက finally: block မွာရွိတဲ ့ code ကို အျမဲတန္း execute လုပ္ပါတယ္။ try:Block မွာ ရွိတ့ ဲ
code က မွားရင္ (error တက္ရင္) except: block ကို ေရာက္မွာ ျဖစ္ျပီး error မတက္ရင္ေတာ
့ else:

block ကို ေရာက္ပါမယ္။ except ျဖစ္ျဖစ္ else ျဖစ္ျဖစ္ ကေန run ျပီးရင္ေတာ
့ finally: block က ကုတ္ေ

တြကို အေပၚက ပံုမွ ေဖာ္ျပခဲ့သလိုပဲ အျမဲ execute လုပ္ကို လုပ္ပါတယ္။

Finally: Block အလုပ္လုပ္ပံုေလးကို ေအာက္က ကုတ္ေတြကေန တစ္ဆင့္ေလ့လာ ျကည့္က် ရေအာ

င္ဗ်ာ .. ပါတဲ့ code(function, method, module) ေတြကေတာ


့ သိျပီးသြားပါ။ စာမေျကေသးဘူးထင္ရင္ အေ

ရွ က
့ အခန္းေတြကို ျပန္ဖတ္ပါ။

ခုဒီကုတ္ေလးရဲ ့ ရည္ရြယ္ခ်က္ကေတာ
့ try: Block မွာ user ဆီကေန အခ်က္အလက္ေတြ ေတာင္းမ

ယ္.. ျပီးေတာ
့ အခ်က္အလက္ data ေတြကို username + date_month ဖုိင္နာမည္နဲ .့ . Save မယ္ေပါ့။ အဲ့

အတြက္ input ေပးတာမွားရင္ error တက္ရင္ အတြက္က except: Block.. Try: block က ေကာင္ေတြ

1
http://crossnetmm.com/

အကုန္မွန္ရင္ else: block မွာက် မွ file ထဲကို data ထည့္မယ္။ finally: Block ကေတာ
့ ဖုိင္ကို ဖြင့ခ
္ ဲရင္ ျပန္
ပိတ္ေပးဖုိ့ လိုတာမုိ ့close() ကို တာ၀န္ယူေပးတာပါ ဘာလိ့ လဲ
ု ဆုိေတာ
့ try မွာက file ကို open() ခဲတ
့ ာမုိ …

ပိတ္ေပးဖုိ့လိုပါတယ္။ else နဲ ့ except မွာ ထည့္တာထက္ finally သည္ သူမွရွိတ့ ဲ ကုတ္ကို အျမဲ run တဲ့ အ
တြက္ ေျကာင့္ပါ။

ခု ဒီကုတ္ေတြသည္ finally: block ရဲ .့ . အသံုးကို ျမင္သာလိ့ ု ေရးထားေပးတဲ့ example တစ္ခုပဲ ျဖစ္ပါတယ္။


ေလ့လာျကည့္က် ပါ။

Line no.1 => import sys


Line no.2 => from datetime import datetime
Line no.3 => try:
Line no.4=>     now = datetime.now()
Line no.5 =>     thistime = now.strftime("%d_%b_%Y")
Line no.6 =>     name = input("what is your name : ")
Line no.7 =>     filename = name + ‘_’ + thistime + ".txt"
Line no.8 =>     myfile_o = open(filename, "w")
Line no.9=>     age = input("Enter your age? ")

2
http://crossnetmm.com/

Line no.10=>     location = input("Where do you live : ")


Line no.11=>     gender = input("Male/Female? ")
Line no.12=>     hourly_income = int(input("What is you basic salary income? (Hourly) "))
Line no.13=>     WorkingTime = int(input("What is total walking time of this month? "))
Line no.14=>     TotalSalary = str(hourly_income * WorkingTime)
Line no.15=> except:
Line no.16=>     print(sys.exc_info())
Line no.17=> else:
Line no.18=>     myfile_o.write("Name : " + name)
Line no.19=>     myfile_o.write("\nAge : " + age)
Line no.20=>     myfile_o.write("\nlocation : " + location)
Line no.21=>     myfile_o.write("\ngender : " + gender)
Line no.22=>     myfile_o.write("\nTotalSalary : " + TotalSalary)
Line no.23=>     print ("******************************************************")
Line no.24=>     print ("Your data is successfully save in " + filename + ".txt")
Line no.25=>     print ("******************************************************")
Line no.26=> finally:
Line no.27=>     myfile_o.close()
Line no.28=> #########################################

ကဲ run ျကည့္က် စို ။့ အရင္ဆးံု error တက္ရင္ exception ကို handle လုပ္နုိင္ မလုပ္နို္င္ စမ္းျကည့္က် ရေ

အာင္။ data ကို အမွားေလးေတြထည့္ ျကည့္က် ရေအာင္။

3
http://crossnetmm.com/

Line no.12 အရ ၀င္လာမယ့္ input သည္ integer ျဖစ္မွ အဆင္ေျပမွာပါ။ character string ကို integer

ေျပာင္းလု့ ိ အဆင္မေျပပါဘူး..  error တက္တဲ့အတြက္ except: block ကို ေရာက္ျပီးေတာ


့ ValueError ဆုိ
တဲ့ result ထြက္လာပါေတာ
့ တယ္။

Run လိုက္တဲ့အခ်ိန္က် user ဆီက input ေတြ ယူျပီး save လိုက္ျပီး ဆိုတဲ ့ result ကို ေတြ ရ
့ ပါမယ္။ အဲ့ေ

တာ
့ save ထားတဲ့ ဖုိင္ေလးကို သြားဖြင့္ျကည့္က် ရေအာင္။

ဒီေလာက္ဆုိရင္ေတာ
့ Exception Handling ကို အေတာ
္ ေလး သေဘာေပါက္ျပီ ထင္ပါတယ္။ ေနာက္တစ္ခ
န္း ဆက္က် ပါစို ။့

With Best Regards,


Khant Phyo
khantphyo@crossnetmm.com
+959442329009

You might also like