คำสั่ง try/catch/finally ใน JavaScript
- หน้าก่อน throw
- หน้าต่อไป var
- กลับไปหน้าต้น คู่มืออ้างอิง JavaScript ประมาณ
การกำหนดและการใช้งาน
คำสั่ง try/catch/finally จัดการข้อผิดพลาดที่อาจเกิดขึ้นบางส่วนหรือทั้งหมดในบล็อครหัส ขณะที่ยังคงทำงานรหัสต่อไป
ข้อผิดพลาดอาจเกิดจากความผิดพลาดในการเขียนรหัสโดยโปรแกรมเมอร์ ข้อผิดพลาดจากการเข้าข้อมูลที่ผิด และสถานการณ์ที่ยังไม่รู้สึกว่าจะเกิดขึ้น
คำสั่ง try อนุญาตให้คุณเขียนบล็อครหัสที่ต้องการทดสอบข้อผิดพลาดในการทำงาน
ถ้ามีข้อผิดพลาดในบล็อค try คำสั่ง catch อนุญาตให้คุณกำหนดบล็อคโค้ดที่ต้องทำงาน
คำสั่ง finally อนุญาตให้ทำงานบล็อคโค้ดหลัง try และ catch โดยไม่มีความเกี่ยวข้องกับผลลัพธ์
หมายเหตุ:คำสั่ง catch และ finally ทั้งสองเป็นที่เลือกตั้ง แต่ต้องใช้หนึ่งในสองคำสั่งนี้เมื่อใช้คำสั่ง try และไม่จำเป็นต้องใช้ทั้งสองครั้ง
คำแนะนำ:เมื่อมีข้อผิดพลาดเกิดขึ้น JavaScript มักจะหยุดงานและสร้างข้อความข้อผิดพลาด ใช้คำสั่ง throw เพื่อสร้างข้อผิดพลาดที่กำหนดโดยตัวเอง (ทิ้งอุปสรรค์) ถ้าใช้ throw ร่วมกับ try และ catch สามารถควบคุมกระแสการทำงานและสร้างข้อความข้อผิดพลาดที่กำหนดโดยตัวเอง
สำหรับความรู้เกี่ยวกับข้อผิดพลาดของ JavaScript โปรดเรียนหลักสูตรข้อผิดพลาดของ JavaScript
實例
ในตัวอย่างนี้ เราทำให้ผิดพลาดในการพิมพ์ตัวอักษรในโค้ด (ในบล็อค try)
ตัวอย่างนี้ควรแสดง "Welcome guest!" แต่มีความผิดพลาดในการพิมพ์ alert
บล็อค catch จะจับข้อผิดพลาด และปฎิบัติการบล็อคโค้ดที่จัดการมัน
<!DOCTYPE html> <html> <body> <p id="demo"></p> <script> try { adddlert("Welcome guest!"); } catch(err) { document.getElementById("demo").innerHTML = err.message; } </script> </body> </html>
มีตัวอย่าง TIY มากมายที่ด้านล่างของหน้า
ภาษาสyntax
try { tryCode - บล็อคโค้ดที่ต้องทดสอบ } catch(err) { catchCode - บล็อคโค้ดที่จะจัดการข้อผิดพลาด } finally { finallyCode - บล็อคโค้ดที่ต้องทำงานไม่ว่าจะมีข้อผิดพลาดใน try / catch หรือไม่ }
ค่าตัวแปร
ตัวแปร | คำอธิบาย |
---|---|
tryCode | จำเป็น ในขณะที่ปฎิบัติงานต้องทดสอบบล็อคโค้ดที่มีข้อผิดพลาด |
err | จำเป็น ถ้าใช้ร่วมกับ catch ระบุตัวแปรที่อ้างอิงข้อผิดพลาดท้องถิ่น ตัวแปรนี้สามารถอ้างอิง Error Object (มีข้อมูลเกี่ยวกับข้อผิดพลาดที่เกิดขึ้น เช่น ข้อความ 'addlert' is not defined') ถ้าข้อผิดพลาดเกิดขึ้นจาก throw คำสั่ง ตัวแปรนี้จะหมายถึงอ็เจกที่กำหนดโดย throw คำสั่ง (ดู 'ตัวอย่างเพิ่มเติม') |
catchCode | เลือกตั้ง。ถ้ามีข้อผิดพลาดในบล็อค try จะปฎิบัติการบล็อคโค้ดนี้ ถ้าไม่มีข้อผิดพลาด บล็อคโค้ดนี้จะไม่ถูกปฎิบัติงาน |
finallyCode | เลือกตั้ง。ต้องปฎิบัติการบล็อคโค้ดที่เป็นที่เลือกให้ทำงานไม่ว่าจะมีข้อผิดพลาดใน try / catch หรือไม่ |
รายละเอียดเทคนิค
JavaScript 版本: | ECMAScript 3 |
---|
更多實例
實例
本例檢查輸入。如果值是錯的,則拋出異常 (err)。
catch 语句捕獲異常 (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>
實例
finally 语句讓你在 try 和 catch 之後執行代碼,而不管結果如何:
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 = ""; } }
浏览器支持
语句 | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
try/catch/finally | การสนับสนุน | การสนับสนุน | การสนับสนุน | การสนับสนุน | การสนับสนุน |
หน้าที่เกี่ยวข้อง
คู่มือ JavaScript:ข้อผิดพลาด JavaScript
คู่มือ JavaScript:JavaScript การประกาศ throw
- หน้าก่อน throw
- หน้าต่อไป var
- กลับไปหน้าต้น คู่มืออ้างอิง JavaScript ประมาณ