การยกขว้างประเภทข้อผิดพลาดต่างๆ ใน JavaScript
ลองยกขว้างข้อผิดพลาดของเราเองและดูว่า วัตถุข้อผิดพลาดจะมีพฤติกรรมอย่างไรใน กรณีนี้:
try {
throw new Error('ข้อความข้อยกเว้น');
} catch (error) {
console.log(error.name); // 'Error'
console.log(error.message); // 'ข้อความข้อยกเว้น'
}
ดังที่คุณเห็น ประเภทของข้อยกเว้นของเราคือ 'Error'
ข้อยกเว้นใดๆ ที่ถูกยกขว้างออกมาในลักษณะนี้
ก็จะมีประเภทเดียวกัน อย่างไรก็ตาม สิ่งนี้อาจจะไม่
สะดวกเสมอไป เพราะหากเรามี
ข้อยกเว้นหลายประเภท เราจะไม่สามารถแยกแยะ
พวกมันออกจากกันได้
JavaScript มีวิธีแก้ไขปัญหานี้:
สามารถยกขว้างข้อยกเว้นได้ไม่เพียงแต่ประเภท
Error เท่านั้น แต่ยังรวมถึงประเภทข้อผิดพลาดใดๆ ที่มีอยู่ใน JavaScript
ด้วย เช่น TypeError,
SyntaxError, RangeError
ลองยกขว้างข้อยกเว้นประเภท
SyntaxError เป็นตัวอย่าง:
try {
throw new SyntaxError('ข้อความข้อยกเว้น');
} catch (error) {
console.log(error.name); // 'SyntaxError'
console.log(error.message); // 'ข้อความข้อยกเว้น'
}
ยกขว้างข้อยกเว้นด้วยประเภท TypeError
ยกขว้างข้อยกเว้นด้วยประเภท SyntaxError
และ RangeError จับข้อยกเว้นเหล่านี้
ด้วยบล็อก try เดียวกัน ในบล็อก catch
ให้แสดงข้อความข้อผิดพลาดที่แตกต่างกันสำหรับข้อยกเว้น
ประเภทที่ต่างกัน