JavaScript တွင် ခြွင်းချက်များ ပစ်ခြင်း

ယခင်သင်ခန်းစာများတွင် JavaScript သည် ပြဿနာအချို့ရှိလျှင် ခြွင်းချက်ကို မည်သည့် နေရာနှစ်ခုတွင်ပစ်သည်ကို ကျွန်ုပ်တို့ လေ့လာခဲ့ပြီးဖြစ်သည်။

သို့သော် သင့်ပရောဂျက်တွင် သင့်အတွက် ခြွင်းချက်ဖြစ်သော်လည်း JavaScript အတွက် မဟုတ်သည့် အခြားအခြေအနေများ ရှိနိုင်သည်။ ထိုသို့သောအခါတွင် ကျွန်ုပ်တို့သည် မိမိကိုယ်ပိုင်၊ အသုံးပြုသူ၏ ခြွင်းချက်များကို ဖန်တီး၍ ပစ်နိုင်သည်။

ဤအတွက် လိုအပ်သော syntax ကို ရှင်းပြပါမည်။ ပထမဦးစွာ ခြွင်းချက်ကို new Error command ဖြင့် ဖန်တီးရမည်၊ parameter အဖြစ် ခြွင်းချက်စာသားကို ပေးရမည်။

javascriptnew Error('ခြွင်းချက်စာသား');

ထို့နောက် ထိုခြွင်းချက်ကို throw command ဖြင့် ပစ်ရမည်။

javascriptthrow new Error('ခြွင်းချက်စာသား');

ခြွင်းချက်ပစ်ခြင်းသည် JavaScript အား ခြွင်းချက်အခြေအနေတစ်ခု ဖြစ်ပွားသည်ဟု ယူဆစေသည်။ ဆိုလိုသည်မှာ ထိုသို့သောခြွင်းချက်ကို try-catch တည်ဆောက်ပုံဖြင့် ဖမ်း၍ လိုအပ်သလိုကိုင်တွယ်နိုင်သည်။

ဤအရာကို မည်သို့အသုံးပြုရမည်ကို ဥပမာတစ်ခုဖြင့် ကြည့်ကြပါစို့။ ကျွန်ုပ်တို့၌ ကိန်းတစ်ခုကို အခြားကိန်းတစ်ခုဖြင့် စားသည့် function တစ်ခုရှိသည်ဆိုပါစို့။

javascriptfunction div(a, b) {
  return a / b;
}

သုညဖြင့်စားခြင်းကို တားမြစ်ထားပြီး ထိုသို့လုပ်ဆောင်ရန် ကြိုးစားလျှင် ခြွင်းချက်အခြေအနေ ပေါ်ပေါက်သင့်သည်ဟု ယူဆကြပါစို့။ ဤအတွက် function အတွင်း 0 ဖြင့် စားရန် ကြိုးစားမှုရှိ မရှိ စစ်ဆေးမည်။ မရှိလျှင် စားမည်၊ ရှိလျှင် ခြွင်းချက်ပစ်မည်။

javascriptfunction div(a, b) {
  if (b !== 0) {
    return a / b;
  } else {
    throw new Error('သုညဖြင့်စားခြင်း အမှား');
  }
}

ပထမဦးစွာ ခြွင်းချက်ကို မဖမ်းဘဲ 0 ဖြင့် စားကြည့်ရန် ကြိုးစားကြပါစို့။

javascriptalert( div(3, 0) );

ဤအခြေအနေတွင် script ၏ execution သည် ရပ်တန့်သွားမည် ပြီး console တွင် 'သုညဖြင့်စားခြင်း အမှား' စာသားဖြင့် အမှားပေါ်လာမည် (စစ်ဆေးကြည့်ပါ)။ ယခု ကျွန်ုပ်တို့၏ အမှားကို ဖမ်း၍ တစ်နည်းနည်းဖြင့် ကိုင်တွယ်ကြမည်။

javascripttry {
  alert( div(3, 0) );
} catch (error) {
  alert('သင်သည် သုညဖြင့် စားရန် ကြိုးစားနေပါသည်၊ ၎င်းကို တားမြစ်ထားပါသည်');
}
Задание 1

JavaScript တွင် အနှုတ်ကိန်းတစ်ခု၏ နှစ်ထပ်ကိန်းရင်းထုတ်ရန် ကြိုးစားခြင်းသည် ခြွင်းချက်ပစ်ခြင်းကို မဖြစ်စေပါ။

javascriptlet result = Math.sqrt(-1);
console.log(result); // NaN ကို ပြသမည်

ကိန်းတစ်ခု၏ နှစ်ထပ်ကိန်းရင်းထုတ်ပေးသည့် သင့်ကိုယ်ပိုင် function တစ်ခုကို ရေးပါ။ ထို့အပြင် အနှုတ်ကိန်းတစ်ခုမှ နှစ်ထပ်ကိန်းရင်းထုတ်လျှင် ခြွင်းချက်ပစ်ရပါမည်။