ဂျပန်စကာတန် အမှား - Throw နှင့် Try to Catch
- အရှေ့ပိုင်း ပါ JS တုံ့ပြန်ရသော အယူအဆ
- နောက်ပိုင်း ပါ JS လက်မှတ်
try
语句使您能够测试代码块中的错误。
catch
语句允许您处理错误。
throw
အင်တာနက် အကျယ် ကို
finally
使您能够执行代码,在 try 和 catch 之后,无论结果如何。
错误总会发生!
当执行 JavaScript 代码时,会发生各种错误。
အမှား အမှတ်အသား အမှား ဖြစ်ပါက ကုန်းလုပ်သူ၏ အလိုအား ကြောင်း ဖြစ်ပါက အမှား ဖြစ်ပါက အမှား ဖြစ်ပါက အမှား ဖြစ်ပါက
အမှတ်အသား
ဤ အမှတ်အသား တွင် adddlert
ဝမ်းကွဲ ရန် ဝမ်းကွဲ ရေး ကို ရေးသား ပြီး အမှား ဖြစ်ပေးသည်
<p id="demo"></p> <script> try { adddlert("ဝမ်းကွဲ ချင်ပါသည်!"); } catch(err) { document.getElementById("demo").innerHTML = err.message; } </script>
ဂျပန်စာလ် အမှား ပေါ်ပေး ပြီး အမှား ဖြစ်ပါက ကိုယ်စားပြု နိုင် သော ကိုယ်စားပြု ကုဒ် ကို ပြင်ဆင် ရန် နိုင်
ဂျပန်စာလ် try နှင့် catch
try
အပြီးအပိုင်း ကို ပြင်ဆင် ရန် ကိုယ်စားပြု ကုဒ် ကို ကိုယ်စားပြု
catch
အပြီးအပိုင်း ကို အပြီးအပိုင်း အမှား ဖြစ်ပါက ပြင်ဆင် ရန် ကိုယ်စားပြု ကုဒ် ကို ကိုယ်စားပြု
JavaScript ဖော်ပြချက် try
နှင့် catch
ပေါင်းစပ် ပေါ်ပေးသည်
try { စမ်းသပ် ရန် ကိုယ်စားပြု ကုဒ် } catch(err) { အမှား ဖြစ်ပါက ပြင်ဆင် ရန် ကိုယ်စားပြု နိုင် သော ကိုယ်စားပြု ကုဒ် }
ဂျပန်စာလ်ဆိုင်း အမှား ပေါ်ပေးသည်
当发生错误时,JavaScript 通常会停止并产生错误消息。
技术术语是这样描述的:JavaScript 将抛出异常(抛出错误)။
JavaScript သည် အချက်အလက် နှစ်ခု နှင့် ပတ်သက်၍ အမှား ဖြစ်သည် Error အကြောင်းအရာ:name
နှင့် message
။
throw အင်တာနက် အကျယ်
throw
အင်တာနက် အကျယ် ကို
နည်းပုံမှာ သတိပြုရသည်အမှား ပေါင်းစပ် (ပေါင်းစပ် အမှား) ပေါင်းစပ်။
အမှား အဆိုပါ ဘာသာပြန်လည်တူညီခြင်း ဖြစ်ပါသည် - ဘာသာပြန်လည်တူညီခြင်း ဖြစ်သည် - ဘာသာပြန်လည်တူညီခြင်း ဖြစ်သည် - ဘာသာပြန်လည်တူညီခြင်း ဖြစ်သည်
throw "Too big"; // အကြီးတော့ throw 500; // အကြီးတော့
အဆိုပါ အကျိုးသား ကို throw
နှင့် try
နှင့် catch
တူညီ အသုံးပြုပြီး အကျိုးသား အစီအစဉ် ကို အုပ်ချုပ်ပြီး ကိုယ်ပိုင် အမှား အကြောင်းကြားချက် ပြုနိုင်ပါလိမ့်မယ်。
အသုံးပြု အချက်အလက် စမ်းသပ်
အဆိုပါ အကျိုးသား သည် အသုံးပြုသည်။ အကျိုးသား သည် ချို့နိုင်သည်ဆိုချက် ဖြစ်သည်。
အမှား(err) ကို catch အင်တာနက် အကျယ် ဖမ်းဆီး၍ ကိုယ်ပိုင် အမှား အကြောင်းကြားချက် တစ်ခု ပြသပါလိမ့်မယ်。
<!DOCTYPE html> <html> <body> <p>5 - 10 အကြား အချက်အလက် ပြင်ဆင်ပါ:</p> <input id="demo" type="text"> <button type="button" onclick="myFunction()">စမ်းသပ် အသုံးပြု</button> <p id="message"></p> <script> function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "ပါဝင်သေးသည်"; if(isNaN(x)) throw "不是数字"; x = Number(x); if(x < 5) throw "အသွေးကြီးတော့"; if(x > 10) throw "အကြီးတော့"; } catch(err) { message.innerHTML = "အသုံးပြုသော အချက်အလက် ဖြစ်သည် " + err; } } </script> </body> </html>
HTML စမ်းသပ်ချက်
အဆိုပါ အကျိုးသား သည် အမှတ်အသား တစ်ခု ဖြစ်သည်。
လက်ရှိ ဘာသာသံ ဘာသာပြန်လည်တူညီခြင်း ကို ပေါင်းစပ်ခြင်း မှာ လက်ရှိ ဘာသာပြန်လည်တူညီခြင်း ကို အသုံးပြု၍ အင်တာနက် ကုဒ် အချက်အလက် တွင် သုံးထားသော အဆိုပါ စမ်းသပ်ချက် ကို အသုံးပြုပါလိမ့်မယ်。
<input id="demo" type="number" min="5" max="10" step="1">
ဒီ စာသင်္ချာ အစည်းအဝေး တွင် အပြီးအပိုင်းတွင် ပို၍ ပညာသင်ကြည်းခြင်း များ ကို သင်ကြားပါလိမ့်မယ်。
finally အင်တာနက် အကျယ်
finally
ဒီ အကျိုးသားမှာမပါ လုပ်ဆောင်ရမည့် အင်တာနက် အုပ်ချုပ်ခြင်း နှင့် catch ပြီးနောက် လုပ်ဆောင်ရမည်
try { // စမ်းသပ်ရန် ကောက်စစ်ပုံစံ } catch(err) { // အမှားကို ပြုပြင်ရမည့် ကောက်စစ်ပုံစံ } finally { // အကျိုးသားမှာမပါ လုပ်ဆောင်ရမည့် ကောက်စစ်ပုံစံ }
အမှတ်အသား
function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "是空的"; if(isNaN(x)) throw "不是数字"; x = Number(x); if(x > 10) throw "ပို၍ ကြီးသည်"; if(x < 5) throw "ပို၍ သေးသည်"; } catch(err) { message.innerHTML = "အမှားတစ်ခု: " + err + "."; } finally { document.getElementById("demo").value = ""; } }
Error အကြောင်းအရာ
JavaScript အား အမှား ဖြစ်ပါက အမှား အချက်အလက် ပြောဆိုခြင်း အဆိုပါ အဆိုပါ
error အကြောင်းအရာ အတွက် အသုံးပြုနိုင်သော အချက်အလက် နှစ်ခု ရှိname
နှင့် message
။
Error အကြောင်းအရာ အချက်အလက်
အချက်အလက် | အမှန်းချက် |
---|---|
name | အမှား အမည် နှင့် အမှား အစီအစဉ် ကို ကြည့်နိုင် |
message | အမှား အမည် နှင့် အမှား အစီအစဉ် ကို ကြည့်နိုင် |
Error Name Values
error အကြောင်းအရာ၏ name အကို နှစ်ဆယ် အမျိုးအစား ကို ကြည့်နိုင်
အမှား အမည် | အမှန်းချက် |
---|---|
EvalError | eval() ပုံစံ တွင် ဖြစ်ပေါ်စေသော အမှား |
RangeError | အကြောင်းအရာ အမျိုးအစား အမှား ဖြစ် |
ReferenceError | အကြောင်းအရာ အမျိုးအစား အမှား ဖြစ် |
SyntaxError | အကြောင်းအရာ အစိတ်အလိုက် ပြင်းအားစိတ် ပြောင်းလဲခြင်း ဖြစ် |
TypeError | အကြောင်းအရာ အမျိုးအစား အမှား ဖြစ် |
URIError | encodeURI() တွင် ဖြစ်ပေါ်စေသော အမှား |
ဤကိစ္စ ခုနစ်ခု အမျိုးအစား ကို အသိမ်းအားခံပါ
Eval အမှား
EvalError
eval() ပုံစံ အတွင်း အမှား ကို ဖြစ်ပေါ်စေသည်
ကျမ်းများ အသစ်များ အား အသုံးပြုခဲ့ရမည်ဟူ၍ ကျော် EvalError
။ ဤကိစ္စ အသုံးပြုပါ SyntaxError
အခြား
ပမာဏ အမျိုးအစား အမှား
RangeError
သင် အခွင့်အရေး အတိုင်း အရာဝတ္တု အသုံးပြုခဲ့ရမည်ဟူ၍ ကျော်
ဥပမာပါ - သင် အရာဝတ္တု အရေးပါ ပမာဏ ကို 500 အတိုင်း အသုံးပြုခြင်း မပြုရ
အမှတ်အသား
var num = 1; try { num.toPrecision(500); // စားဆိုတဲ့ အရာ က 500 အရေးပါ ပမာဏ မပါ } catch(err) { document.getElementById("demo").innerHTML = err.name; }
အသုံးပြုခြင်း အမှား
ဤကိစ္စအား သင် အသုံးပြုသော (အသုံးပြုခြင်း) မမှတ်ယူခဲ့သော အကြောင်းအရာ ဖြစ် ReferenceError
ထို့နောက် ဖြစ်ပေါ်စေသည်
အမှတ်အသား
var x; try { x = y + 1; // y ကို အသုံးပြုခြင်း မပြုရ } catch(err) { document.getElementById("demo").innerHTML = err.name; }
အစိတ်အလိုက် ပြင်းအားစိတ် ပြောင်းလဲခြင်း
သင် အစိတ်အလိုက် ပြင်းအားစိတ် ပြောင်းလဲခြင်း ကို ပြုလုပ်ကြောင်း အတိုင်း ကျော် SyntaxError
ဖြစ်ပေါ်လာပါသည်:
အမှတ်အသား
try { eval("alert('Hello)"); // မတ်တပ်မှု ဖြစ်ပါက အမှားဖြစ် } catch(err) { document.getElementById("demo").innerHTML = err.name; }
အကြောင်းအရာ အမျိုးအစား ချို့တဲ့
ဤကိစ္စအား သင် အသုံးပြုသော ကြည့်ချင်သည့် ပမာဏ မှ ဝေးကွာသော အခါ ကျော် TypeError
ဖြစ်ပေါ်လာပါသည်:
အမှတ်အသား
var num = 1; try { num.toUpperCase(); // 您无法将数字转换为大写 } catch(err) { document.getElementById("demo").innerHTML = err.name; }
URI အမှား
အက်ယုံး ပုံစံ ကို URI သုံးစွဲခြင်း တွင် အမှား ဖြစ်ပါက URIError
ဖြစ်ပေါ်လာပါသည်:
အမှတ်အသား
try { decodeURI("%%%"); // အမှတ်သုံး ကို URI အော်စ်စ် ပြုလုပ်နိုင်ပါ } catch(err) { document.getElementById("demo").innerHTML = err.name; }
သမင်း အီလီ အသုံးမပြုသော အကျုံးများ
Mozilla နှင့် Microsoft က သမင်း အီလီ အသုံးမပြုသော အခြေခံ အကျုံးများ ကို အသိအမှတ်ပြုထားပါသည်:
- fileName (Mozilla)
- lineNumber (Mozilla)
- columnNumber (Mozilla)
- stack (Mozilla)
- description (Microsoft)
- number (Microsoft)
အခမဲ့ အရပ်ကွက် ဝတ္ထုများ တွင် အက်ယုံး သုံးမှီ မရှိပေ။ အခြား ဘရောက်စ် အီလီများ တွင် အမှုန်းပေါ် မပြောင်းလဲပေ။
- အရှေ့ပိုင်း ပါ JS တုံ့ပြန်ရသော အယူအဆ
- နောက်ပိုင်း ပါ JS လက်မှတ်