ตัวอย่าง
ในตัวอย่างนี้เราได้ทำพิมพ์ผิดในรหัส (ในบล็อกลองบริการ)
ตัวอย่างที่ควรจะแจ้งเตือน "Welcome guest!" แต่การแจ้งเตือนสะกดผิด
จับบล็อก catches ข้อผิดพลาดและรันรหัสที่จะจัดการกับมัน:
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
try {
adddlert("Welcome guest!");
}
catch(err) {
document.getElementById("demo").innerHTML = err.message;
}
</script>
</body>
</html>
ลองตัวเอง» เพิ่มเติม "Try it Yourself" ตัวอย่างด้านล่าง
ความหมายและการใช้งาน
กระบวนการ / จับ / สุดท้ายลองคำสั่งจัดการทั้งหมดหรือบางส่วนของข้อผิดพลาดที่อาจเกิดขึ้นในบล็อกของรหัสในขณะที่ยังคงใช้รหัส
ข้อผิดพลาดสามารถเข้ารหัสข้อผิดพลาดที่ทำโดยโปรแกรมเมอร์ข้อผิดพลาดอันเนื่องมาจากการป้อนข้อมูลที่ไม่ถูกต้องและสิ่งที่คาดเดาอื่น ๆ
คำสั่งที่พยายามช่วยให้คุณกำหนดบล็อกของรหัสที่จะทดสอบสำหรับข้อผิดพลาดในขณะที่มันจะถูกดำเนินการ
คำสั่งจับช่วยให้คุณกำหนดบล็อกของรหัสที่จะดำเนินการหากมีข้อผิดพลาดเกิดขึ้นในบล็อกลอง
คำสั่งในที่สุดก็ช่วยให้คุณสามารถรันโค้ดหลังจากลองและจับโดยไม่คำนึงถึงผลที่ตามมา
หมายเหตุ: จับและงบในที่สุดทั้งสองก็ได้ แต่คุณจำเป็นต้องใช้หนึ่งของพวกเขา (if not both) ในขณะที่การใช้คำสั่งลอง
เคล็ดลับ: เมื่อเกิดข้อผิดพลาด, JavaScript ปกติจะหยุดและสร้างข้อผิดพลาด ใช้ โยน คำสั่งในการสร้างข้อผิดพลาดที่กำหนดเอง (throw an exception) ถ้าคุณใช้ร่วมกับโยนลองและจับคุณสามารถควบคุมการไหลของโปรแกรมและสร้างข้อความผิดพลาดที่กำหนดเอง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาด JavaScript, อ่านออก JavaScript ข้อผิดพลาด การสอน
สนับสนุนเบราว์เซอร์
คำแถลง | |||||
---|---|---|---|---|---|
try/catch/finally | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ |
วากยสัมพันธ์
try {
tryCode - Block of code to try
}
catch( err ) {
catchCode -
Block of code to handle errors
}
finally {
finallyCode - Block of
code to be executed regardless of the try / catch result
}
ค่าพารามิเตอร์
พารามิเตอร์ | ลักษณะ |
---|---|
tryCode | จำเป็นต้องใช้ บล็อกของรหัสที่จะทดสอบสำหรับข้อผิดพลาดในขณะที่มันจะถูกดำเนินการ |
err | จำเป็นต้องใช้ถ้าใช้ด้วยการจับ ระบุตัวแปรท้องถิ่นที่หมายถึงข้อผิดพลาด ตัวแปรสามารถอ้างถึงวัตถุข้อผิดพลาด (มีข้อมูลเกี่ยวกับข้อผิดพลาดที่เกิดขึ้นเช่นข้อความ " 'addlert' ไม่ได้ถูกกำหนด") หากข้อยกเว้นที่ถูกสร้างขึ้นตามคำสั่งโยนตัวแปรหมายถึงวัตถุที่ระบุไว้ในคำสั่งจากเส้นข้าง (ดู "ตัวอย่างเพิ่มเติม") |
catchCode | ไม่จำเป็น. บล็อกของรหัสที่จะดำเนินการหากมีข้อผิดพลาดเกิดขึ้นในบล็อกลอง หากไม่มีข้อผิดพลาดเกิดขึ้นบล็อกของรหัสนี้จะไม่ดำเนินการ |
finallyCode | ไม่จำเป็น. บล็อกของรหัสที่จะดำเนินการโดยไม่คำนึงถึงผล / จับลอง |
รายละเอียดทางเทคนิค
JavaScript เวอร์ชัน: | 1.4 |
---|
ตัวอย่างอื่น ๆ
ตัวอย่าง
ตัวอย่างเช่นนี้จะตรวจสอบการป้อนข้อมูล ถ้าค่าที่ไม่ถูกต้องข้อยกเว้น (err) จะถูกโยนทิ้ง
ข้อยกเว้น (err) ที่ถูกจับได้โดยคำสั่งจับและข้อผิดพลาดที่กำหนดเองจะแสดง:
<!DOCTYPE html>
<html>
<body>
<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() {
var message, x;
message =
document.getElementById("message");
message.innerHTML = "";
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>
</body>
</html>
ลองตัวเอง» ตัวอย่าง
คำสั่งในที่สุดก็ช่วยให้คุณสามารถรันโค้ดหลังจากลองและจับโดยไม่คำนึงถึงผลที่ได้:
function myFunction()
var message,
x;
message =
document.getElementById("message");
message.innerHTML = "";
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
= "";
}
}
ลองตัวเอง» หน้าเว็บที่เกี่ยวข้อง
กวดวิชา JavaScript: ข้อผิดพลาด JavaScript
อ้างอิง JavaScript: JavaScript ทุ่มงบ
<JavaScript อ้างอิงงบ