การประยุกต์ใช้ประเภทข้อยกเว้นใน JavaScript
สมมติว่ามีฟังก์ชันหนึ่งรับพารามิเตอร์เป็น JSON พร้อมกับอาร์เรย์ของข้อมูล และเขียนข้อมูล แต่ละตัวในอาร์เรย์นั้นลงใน local storage:
function saveData(json) {
let arr = JSON.parse(json);
for (let i = 0; i < arr.length; i++) {
localStorage.setItem(i, arr[i]);
}
}
ในฟังก์ชันนี้ สถานการณ์ข้อยกเว้น สามารถเกิดขึ้นได้ในสองจุด: ระหว่างการแยกวิเคราะห์ JSON และระหว่างการพยายามบันทึกข้อมูลลงใน local storage
สมมติว่า ตัวอย่างเช่น ในการจัดการข้อผิดพลาด เราตัดสินใจที่จะแสดงข้อความบางอย่างเกี่ยวกับ ปัญหา:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
alert('มีปัญหาบางอย่าง');
}
ข้อความของเรานั้น ก็ดีอยู่หรอก แต่ มันไม่ได้แยกแยะปัญหาที่เกิดขึ้นแต่อย่างใด การจะแสดงข้อความเกี่ยวกับ ปัญหาที่เกิดขึ้นจริงนั้นจะสมเหตุสมผลกว่า
เพื่อการนี้ เราจะแยกแยะข้อผิดพลาดที่เกิดขึ้นตามชื่อ:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
if (error.name == 'QuotaExceededError') {
alert('พื้นที่ใน storage หมด');
}
if (error.name == 'SyntaxError') {
alert('JSON ไม่ถูกต้อง');
}
}
คัดลอกโค้ดฟังก์ชัน saveData ของฉัน
จากนั้นโดยไม่แอบดูโค้ดของฉัน ให้ดำเนินการ
จัดการข้อผิดพลาดตามที่ฉันอธิบายไว้
จงสร้างสถานการณ์ข้อยกเว้นที่อาจเกิดขึ้นในฟังก์ชัน
saveData ขึ้นมาโดยเจตนาและตามลำดับ