JavaScript တွင် ခြွင်းချက်များကို ပြန်လည်ပစ်ခြင်း
JSON ထုတ်ကုန်အတွက် လုပ်ဆောင်ချက်၏ catch ဘလောက်ကို သုံးသပ်ကြည့်ပါ။
catch (error) {
if (error.name == 'SyntaxError') {
alert('ထုတ်ကုန်၏ JSON သည် မမှန်ကန်ပါ');
} else if (error.name == 'ProductCostError') {
alert('ထုတ်ကုန်တွင် စျေးနှုန်း သို့မဟုတ် အရေအတွက် မရှိပါ');
}
}
သင်မြင်တွေ့ရသည့်အတိုင်း၊ ကျွန်ုပ်တို့သည် ကြိုတင်စီစဉ်ထားသော
ခြွင်းချက်နှစ်ခုကို ဖမ်းမိပြီး ၎င်းအပေါ် တစ်မျိုးတစ်ဖုံ တုံ့ပြန်သည်။
သို့သော် ကျွန်ုပ်တို့ မမျှော်လင့်ထားသော အခြားအမျိုးအစား၏ ခြွင်းချက်
ပေါ်ပေါက်လာပါက ဘာဖြစ်သွားမည်နည်း။ ဤအခြေအနေတွင်
၎င်းသည် catch ဘလောက်ထဲသို့ ရောက်ရှိသွားမည်ဖြစ်သော်လည်း
မည်သည့်တုံ့ပြန်မှုမှ လိုက်ပါလာမည်မဟုတ်ပါ။ အဘယ်ကြောင့်ဆိုသော်
အခြားအမျိုးအစားရှိသော ခြွင်းချက်သည် ကျွန်ုပ်တို့၏ if စစ်ဆေးချက်
တစ်ခုတစ်လေထဲသို့ပင် မရောက်ရှိနိုင်သောကြောင့်ဖြစ်သည်။
မည်သည့်တုံ့ပြန်မှုမျှ ရှိမည်မဟုတ်ဟု ကျွန်ုပ်ပြောသောအခါ၊ ဆိုလိုရင်းမှာ တကယ့်ကို ဘာမှမရှိခြင်းကို ဆိုလိုသည်။ console တွင်ပင် အမှားကို ပြသမည်မဟုတ်ပါ။ ကျွန်ုပ်တို့၏ ကုဒ်သည် လုံးဝအသံတိတ်ကာ အလုပ်လုပ်မည်မဟုတ်ပါ။
ထို့ကြောင့် အောက်ပါစည်းမျဉ်းတစ်ခု ရှိသည်။ သင်၏
ကုဒ်သည် ၎င်းကိုဖြေရှင်းနိုင်သည်ဟု သိထားသော ခြွင်းချက်များကိုသာ
ဖမ်းမိသင့်သည်။ ခြွင်းချက်သည် မသိရှိထားပါက၊ ၎င်းကို
throw ကိုသုံး၍ နောက်ထပ် ပစ်ချ သင့်သည်။
ဤအခြေအနေတွင် အထက်တွင် ပိုမိုသိရှိသူတစ်ဦးဦးက ၎င်းကိုဖမ်းမိမည်
သို့မဟုတ် ခြွင်းချက်သည် console တွင် အမှားအဖြစ် ပေါ်လာမည်။
ကျွန်ုပ်တို့၏ကုဒ်ကို ပြင်ဆင်ကြပါစို့။
catch (error) {
if (error.name == 'SyntaxError') {
alert('ထုတ်ကုန်၏ JSON သည် မမှန်ကန်ပါ');
} else if (error.name == 'ProductCostError') {
alert('ထုတ်ကုန်တွင် စျေးနှုန်း သို့မဟုတ် အရေအတွက် မရှိပါ');
} else {
throw error; // ခြွင်းချက်ကို နောက်ထပ်ပစ်ချသည်
}
}
အောက်ပါကုဒ်ကို ပေးထားသည်။
try {
let arr = JSON.parse(json);
for (let i = 0; i < arr.length; i++) {
localStorage.setItem(i, arr[i]);
}
} catch (error) {
if (error.name == 'QuotaExceededError') {
alert('သိုလှောင်ရာနေရာတွင် နေရာကုန်သွားသည်');
}
if (error.name == 'SyntaxError') {
alert('မမှန်ကန်သော JSON');
}
}
ဤကုဒ်တွင် ဘာမှားနေသနည်း။ ပိုမိုကောင်းမွန်သော ကုဒ်အဖြစ် ပြင်ဆင်ပေးပါ။