JavaScript ลอง...จับ...ในที่สุด
ตัวอย่าง
ตัวอย่างนี้มีการพิมพ์ผิดในบล็อกtry การแจ้งเตือนสะกดผิด
บล็อกcatchจับข้อผิดพลาดและรันโค้ดเพื่อจัดการ:
<p id="demo"></p>
<script>
try {
adddlert("Welcome guest!");
}
catch(err) {
document.getElementById("demo").innerHTML = err.message;
}
</script>
ตัวอย่างเพิ่มเติมด้านล่าง
ความหมายและการใช้งาน
เมื่อ เกิด ข้อผิดพลาด JavaScript จะหยุดและสร้างข้อความแสดงข้อผิดพลาด
บันทึก
ศัพท์เทคนิคสำหรับสิ่งนี้คือ: JavaScript แสดง ข้อยกเว้น
JavaScript สร้างอ็อบเจ็กต์ Errorโดยมีคุณสมบัติสองประการ : ชื่อและข้อความ
คำtry...catch...finally
สั่งผสมคำสั่งจัดการข้อผิดพลาดโดยไม่หยุด JavaScript
คำtry
สั่งกำหนดบล็อคโค้ดที่จะรัน (เพื่อลอง)
คำcatch
สั่งกำหนดบล็อคโค้ดเพื่อจัดการกับข้อผิดพลาดใดๆ
คำfinally
สั่งกำหนดบล็อคโค้ดที่จะรันโดยไม่คำนึงถึงผลลัพธ์
คำthrow
สั่งกำหนดข้อผิดพลาดที่กำหนดเอง
ทั้งสอง อย่าง catch
และfinally
เป็นทางเลือก แต่คุณต้องใช้อย่างใดอย่างหนึ่ง
บันทึก
การใช้throw with try and catchช่วยให้คุณควบคุมการไหลของโปรแกรมและสร้างข้อความแสดงข้อผิดพลาดที่กำหนดเองได้
ดูสิ่งนี้ด้วย:
ไวยากรณ์
try {
tryCode - Code block to run
}
catch(err) {
catchCode -
Code block to handle errors
}
finally {
finallyCode - Code block to be executed regardless of the try result
}
พารามิเตอร์
Parameter | Description |
tryCode | Required. Code block to be tested while executing. |
err | A local reference to the error object. |
catchCode | Optional. Code block to execute if an error occurs. |
finallyCode | Optional. Code block to execute regardless of the try result |
ตัวอย่างเพิ่มเติม
ตัวอย่างนี้ตรวจสอบอินพุต
หากค่าไม่ถูกต้อง ข้อยกเว้น (err) จะถูกส่งออกไป:
<p>Please input a number between
5 and 10:</p>
<input id="demo" type="text">
<button type="button"
onclick="myFunction()">Test Input</button>
<p id="message"></p>
<script>
function myFunction() {
const message =
document.getElementById("message");
message.innerHTML = "";
let x =
document.getElementById("demo").value;
try {
if(x == "") throw "is Empty";
if(isNaN(x)) throw "not a number";
if(x > 10) throw "too high";
if(x < 5) throw "too low";
}
catch(err) {
message.innerHTML =
"Input " + err;
}
}
</script>
คำ สั่ง สุดท้ายรันโค้ด โดยไม่คำนึงถึงผลการลอง:
function myFunction()
const message =
document.getElementById("message");
message.innerHTML = "";
let x =
document.getElementById("demo").value;
try {
if(x == "") throw "Empty";
if(isNaN(x))
throw "Not a number";
if(x >
10) throw "Too high";
if(x <
5) throw "Too low";
}
catch(err)
{
message.innerHTML = "Error: " +
err + ".";
}
finally {
document.getElementById("demo").value = "";
}
}
รองรับเบราว์เซอร์
try...catch
เป็นคุณลักษณะ ECMAScript3 (ES3)
ES3 (JavaScript 1999) ได้รับการสนับสนุนอย่างสมบูรณ์ในเบราว์เซอร์ทั้งหมด:
Chrome | IE | Edge | Firefox | Safari | Opera |
Yes | Yes | Yes | Yes | Yes | Yes |