ကွန်ပြူတာ ပရိုဂရမ်းမင်းလောကတွင် အမှားအယွင်းများ ကြုံတွေ့ရသည်မှာ ဖြစ်ရိုးဖြစ်စဉ်တစ်ခုဖြစ်သည်။ ဥပမာ ယူပါ။ သော့အမှား- 'acc' in Python ကို. အဘိဓာန်မှကျွန်ုပ်တို့ရယူရန်ကြိုးစားနေသောတိကျသောသော့တစ်ခုမရှိသောအခါတွင်ဤအမှားပေါ်ပေါက်လာတတ်သည်။ ကံကောင်းစွာဖြင့်၊ Python သည် ထိုပြဿနာများကို ကိုင်တွယ်ဖြေရှင်းရန်နှင့် သင့်ကုဒ်ပျက်သွားခြင်းမှ ကာကွယ်ရန် ထက်မြက်သောအဖြေကို ပေးစွမ်းပါသည်။ ၎င်းတွင် ခြွင်းချက် ကိုင်တွယ်ခြင်းဆိုင်ရာ လုပ်ထုံးလုပ်နည်းများကို ကျင့်သုံးခြင်း၊ get() လုပ်ဆောင်ချက်ကို အသုံးပြုခြင်း သို့မဟုတ် ၎င်းတို့ကို မဝင်ရောက်မီ သော့များကို စစ်ဆေးခြင်းတို့ ပါဝင်သည်။ မှန်ကန်သောနည်းလမ်းဖြင့် ဤအမှားကို ကျွမ်းကျင်စွာ စီမံခန့်ခွဲနိုင်သည်။
KeyError နားလည်ခြင်း။
ကီးအမှား Python တွင်မရှိသောသော့ဖြင့်အဘိဓာန်တစ်ခုကိုသင်ဝင်ရောက်ရန်ကြိုးစားသောအခါတွင်ပေါ်လာသောခြွင်းချက်အမျိုးအစားဖြစ်သည်။ ၎င်းသည် အမြဲတမ်းကောင်းမွန်သော coding အလေ့အကျင့်ဖြစ်ပြီး၊ Python ၏တရားဝင်စာရွက်စာတမ်းများအရ၊ ၎င်း၏တန်ဖိုးကိုဝင်ရောက်ရန်မကြိုးစားမီ သော့တစ်ခုရှိမရှိစစ်ဆေးရန်။
#Random example of KeyError dict1 = {"a":1,"b":2,"c":3} print(dict1["d"])
အထက်ဖော်ပြပါ ကုဒ်တွင် 'd' သည် အဘိဓာန် dict1 တွင် မတည်ရှိသောကြောင့် ရလဒ်ထွက်လာသည်။ သော့အမှား- 'd'.
KeyError အတွက် ဖြေရှင်းချက်- 'acc'
ကိုင်တွယ်ဖြေရှင်းနည်း ကီးအမှား အဘိဓာန်မှ အရာများကို သင်ရယူခြင်းသို့ သင်ချဉ်းကပ်ပုံတွင် ထိထိရောက်ရောက် အကျုံးဝင်ပါသည်။ ဒီ Error ကို ရှောင်ရှားနိုင်တဲ့ နည်းလမ်းတစ်ခုကတော့ ကွန်မန့်ကို အသုံးပြုခြင်း ဖြစ်ပါတယ်။ ရ () သော့ကိုရည်ညွှန်းသည့်အခါ နည်းလမ်း။
အဲဒါကို သင်ဘယ်လိုလုပ်ရမလဲ၊
#prints None instead of giving KeyError print(dict1.get("d"))
“d” သည် အဘိဓာန်တွင် မရှိသောကြောင့် ကုဒ်သည် None ကို ပြန်ပေးသည်။ အသုံးပြုခြင်း။ ရ () နည်းလမ်း၊ ကျွန်ုပ်တို့သည် သော့မရှိသည့်အခါ မူလတန်ဖိုးကို ပေးစွမ်းနိုင်သည်။
#prints 'default' instead of None print(dict1.get("d", 'default'))
ခြွင်းချက်ကိုင်တွယ် KeyError ကို ကိုင်တွယ်ရန် အခြားနည်းပညာတစ်ခုဖြစ်သည်။ အောက်တွင်ပြထားသည့်အတိုင်း try-blocks မှလွဲ၍ အခြားအကူအညီဖြင့် ၎င်းကိုလုပ်ဆောင်နိုင်သည်။
try: # code that can raise an exception print(dict1["d"]) except KeyError: # Execute this code in case of KeyError print('Key does not exist')
ဤကုဒ်သည် ပရိုဂရမ်တစ်ခုလုံးကို မပိတ်ဘဲ ခြွင်းချက်အား “ကီးမရှိပါ” ဟု ရိုက်နှိပ်ခြင်းဖြင့် ခြွင်းချက်အား သပ်ရပ်စွာ ကိုင်တွယ်ပေးသည်၊ ၎င်းသည် ပိုမိုအသုံးပြုရလွယ်ကူသည်။
ကုဒ်ကို အဆင့်ဆင့် ရှင်းပြပေးသည်။
KeyErrors များကို ကိုင်တွယ်ဖြေရှင်းရာတွင် ရှုပ်ထွေးမှုများကြောင့် အထက်ဖော်ပြပါ ကုဒ်များကို တစ်နည်းနည်းချင်း ခွဲထုတ်ရန် အရေးကြီးပါသည်။
ပထမဥပမာတွင်၊ 'dict1' ဟုခေါ်သော အဘိဓာန်ကို {'a': 1, 'b': 2, 'c': 3} ၏ သော့တန်ဖိုးအတွဲများဖြင့် အဓိပ္ပါယ်ဖွင့်ဆိုပါသည်။ ထို့နောက် 'dict1' တွင်မရှိသောသော့ 'd' ကိုဝင်ရောက်ရန်ကြိုးစားသည်။ ၎င်းသည် Python ကို မက်ဆေ့ချ်အဖြစ် 'd' ဖြင့် KeyError တက်လာစေသည်။
ဒုတိယဥပမာတွင် get() method ကိုအသုံးပြုသည်။ ဤ Python အဘိဓာန်နည်းလမ်းသည် ပေးထားသောသော့အတွက် တန်ဖိုးကို ရယူသည်။ သော့မပါပါက၊ ပုံမှန်အားဖြင့်၊ ၎င်းသည် 'None' ကို ပြန်ပေးသည်။ ၎င်းသည် Python တွင် KeyError တက်လာခြင်းမှ တားဆီးသည်။
တတိယဥပမာတွင်၊ ကျွန်ုပ်တို့သည် 'None' အစား အသုံးဝင်သောမက်ဆေ့ဂျ်တစ်ခုရရှိရန် 'မူလတန်ဖိုး' ကို သတ်မှတ်ပါသည်။ ဤသည်မှာ သော့မရှိဟု အချက်ပြရန် ပိုမိုအသိဥာဏ်ရှိသော နည်းလမ်းဖြစ်သည်။
နောက်ဆုံးအနေဖြင့်၊ ကျွန်ုပ်တို့သည် ခြွင်းချက်ကိုင်တွယ်ခြင်းအတွက် စမ်းသုံးခြင်းမှအပ၊ ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏ကုဒ်ကို 'try' အောက်တွင်ရေးပြီး 'KeyError' ဖြစ်ပေါ်လာပါက 'လွဲရင်' အောက်တွင် လုပ်ဆောင်ရမည့်အရာကို သတ်မှတ်ပါ။ ၎င်းသည် ကျိုးပေါက်ခြင်း သို့မဟုတ် ပျက်ကျခြင်းအစား ကုဒ်ထဲသို့ ကျသွားစေရန် လုံခြုံရေးပိုက်ကွန်ကို ပေးသည်။
သင်၏ Python ပရိုဂရမ်းမင်းတွင် ဤနည်းပရိယာယ်များကို အကောင်အထည်ဖော်ခြင်းဖြင့် သင်၏ coding စွမ်းရည်ကို မြှင့်တင်ပေးနိုင်ပါသည်။