Python တွင် ခြွင်းချက်များကို ဖမ်းယူခြင်း
Python သည် အခြားပရိုဂရမ်းမင်းဘာသာစကားများနှင့် နှိုင်းယှဉ်ပါက ခြွင်းချက်များကို ဖြစ်ပေါ်စေသော အခြေအနေများ အလွန်များပြားသည်။
သူတို့ကို အနီးကပ်ကြည့်ကြစို့။ ကျွန်ုပ်တို့တွင် အောက်ပါစာရင်းရှိသည်ဆိုပါစို့။
lst = [1, 2, 3]
စာရင်းရှိ မရှိသော အချက်တစ်ခုကို ရည်ညွှန်းကြည့်ကြစို့။
print(lts[4])
ကုဒ်ကို လုပ်ဆောင်ပြီးနောက် အမှားတစ်ခု (ခြွင်းချက်) ကို ပြသလိမ့်မည်။
IndexError: list index out of range
သို့သော် ခြွင်းချက်ကို မပြဘဲ အလုပ်ကို ဆက်လုပ်လိုပါက ၎င်းကို try-except တည်ဆောက်ပုံဖြင့် ဖမ်းယူရမည်။
၎င်းတွင် အောက်ပါဝါကျဖွဲ့စည်းပုံရှိသည်။
try:
# ခြွင်းချက်ကို ဖြစ်ပေါ်စေသော ကုဒ်
except:
# အမှားကို ကိုင်တွယ်ခြင်း
try ဘလောက်တွင် ခြွင်းချက်ပါဝင်နိုင်သော ကုဒ်ကို ထည့်သွင်းသင့်သည်။
အကယ်၍ ဤကုဒ်ကို လုပ်ဆောင်နေစဉ်အတွင်း ခြွင်းချက်အခြေအနေတစ်ခု ပေါ်ပေါက်လာပါက၊
ကုဒ်လုပ်ဆောင်ခြင်းသည် ရပ်တန့်မသွားဘဲ except ဘလောက်ရှိ ကုဒ်သို့ ကူးပြောင်းသွားမည်ဖြစ်သည်။
ဤဘလောက်တွင် ပေါ်ပေါက်လာသော အမှား၏ အနှစ်သာရကို အများဆုံးတိကျစွာ ဖော်ပြသည့် မက်ဆေ့ဂျ်တစ်ခုကို ရေးသားသင့်သည်။
အကယ်၍ try ဘလောက်ကို လုပ်ဆောင်နေစဉ်အတွင်း ခြွင်းချက်အခြေအနေများ မဖြစ်ပေါ်ပါက၊
အသုံးဝင်သော ကုဒ်သည် ရိုးရိုးလေးသာ လုပ်ဆောင်ပြီး၊ except ဘလောက်မှ ကုဒ်သည် လုပ်ဆောင်မည်မဟုတ်ပါ။
စာရင်းရှိ မရှိသော အချက်တစ်ခုကို ရည်ညွှန်းခြင်းကြောင့် ဖြစ်ပေါ်လာသော ကျွန်ုပ်တို့၏ ခြွင်းချက်ကို ဖမ်းယူကြစို့။
ထိုသို့ပြုလုပ်ရန်၊ try ဘလောက်အတွင်း၌ အမှားဖြစ်နိုင်ချေရှိသော ကုဒ်ကို ထည့်သွင်းပါမည်။
except ဘလောက်တွင် 'error: elem is not exist' ဆိုသော မက်ဆေ့ဂျ်ကို console တွင် ပြသရန် ဖော်ပြပါမည်။
lst = [1, 2, 3]
try:
print(lst[4])
except:
print('error: elem is not exist')
ကုဒ်လုပ်ဆောင်ပြီးနောက် အောက်ပါအတိုင်း ပြသလိမ့်မည်။
'error: elem is not exist'
try-except တည်ဆောက်ပုံကို လေ့လာပြီးနောက်၊ သင့်ရေးထားသော ကုဒ်၏ စတိုင်သည် ပြောင်းလဲသင့်သည်။
ယခုအခါ၊ ခြွင်းချက်အခြေအနေများ ဖြစ်ပေါ်နိုင်သော နေရာအားလုံးကို try အတွင်း ထည့်သွင်းရမည်ဖြစ်ပြီး၊
except ဘလောက်အတွင်း၌ ထိုခြွင်းချက်အတွက် တုံ့ပြန်မှုကို ရေးသားရမည်။
အသုံးပြုသူထံမှ နံပါတ်နှစ်ခု မေးမြန်းပါ။ တစ်ခုကို အခြားတစ်ခုဖြင့် စားပါ။ သုညဖြင့် စားခြင်း ခြွင်းချက်အခြေအနေကို ဖမ်းယူပါ။
အသုံးပြုသူထံမှ နံပါတ်တစ်ခု မေးမြန်းပါ။ ထိုနံပါတ်၏ နှစ်ထပ်ကိန်းရင်းကို ရှာပါ။ အနုတ်နံပါတ်မှ နှစ်ထပ်ကိန်းရင်း ထုတ်ယူခြင်း ခြွင်းချက်အခြေအနေကို ဖမ်းယူပါ။
စာရင်းတစ်ခုကို ပေးထားသည်။ အသုံးပြုသူထံမှ ကိန်းပြည့်တစ်ခု မေးမြန်းပါ။ အသုံးပြုသူ ရိုက်ထည့်သော နံပါတ်ရှိသည့် စာရင်းအချက်ကို ရယူပါ။ အသုံးပြုသူသည် စာရင်း၏ အပိုင်းအခြားအပြင်ဘက်ရှိ နံပါတ်ကို ရိုက်ထည့်ပါက ဖြစ်ပေါ်လာမည့် ခြွင်းချက်အခြေအနေကို ဖမ်းယူပါ။
အောက်ပါကုဒ်ကို ပေးထားသည်။
num = '5'
res = num + 2
print(res)
ဤကုဒ်တွင် မှားယွင်းနေသည်မှာ အဘယ်နည်း။ ၎င်း၏ အားနည်းချက်များကို ပြုပြင်ပါ။
အောက်ပါကုဒ်ကို ပေးထားသည်။
lst = [1, 2, 3, 4]
def getElem(iter):
print(iter[4])
getElem(lst)
ဤကုဒ်တွင် မှားယွင်းနေသည်မှာ အဘယ်နည်း။ ၎င်း၏ အားနည်းချက်များကို ပြုပြင်ပါ။