การประยุกต์ใช้ประเภทข้อยกเว้นใน JavaScript

สมมติว่ามีฟังก์ชันหนึ่งรับพารามิเตอร์เป็น JSON พร้อมกับอาร์เรย์ของข้อมูล และเขียนข้อมูล แต่ละตัวในอาร์เรย์นั้นลงใน local storage:

javascriptfunction saveData(json) {
  let arr = JSON.parse(json);
  
  for (let i = 0; i < arr.length; i++) {
    localStorage.setItem(i, arr[i]);
  }
}

ในฟังก์ชันนี้ สถานการณ์ข้อยกเว้น สามารถเกิดขึ้นได้ในสองจุด: ระหว่างการแยกวิเคราะห์ JSON และระหว่างการพยายามบันทึกข้อมูลลงใน local storage

สมมติว่า ตัวอย่างเช่น ในการจัดการข้อผิดพลาด เราตัดสินใจที่จะแสดงข้อความบางอย่างเกี่ยวกับ ปัญหา:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  alert('มีปัญหาบางอย่าง');
}

ข้อความของเรานั้น ก็ดีอยู่หรอก แต่ มันไม่ได้แยกแยะปัญหาที่เกิดขึ้นแต่อย่างใด การจะแสดงข้อความเกี่ยวกับ ปัญหาที่เกิดขึ้นจริงนั้นจะสมเหตุสมผลกว่า

เพื่อการนี้ เราจะแยกแยะข้อผิดพลาดที่เกิดขึ้นตามชื่อ:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  if (error.name == 'QuotaExceededError') {
    alert('พื้นที่ใน storage หมด');
  }
  
  if (error.name == 'SyntaxError') {
    alert('JSON ไม่ถูกต้อง');
  }
}
Задание 1

คัดลอกโค้ดฟังก์ชัน saveData ของฉัน จากนั้นโดยไม่แอบดูโค้ดของฉัน ให้ดำเนินการ จัดการข้อผิดพลาดตามที่ฉันอธิบายไว้

Задание 2

จงสร้างสถานการณ์ข้อยกเว้นที่อาจเกิดขึ้นในฟังก์ชัน saveData ขึ้นมาโดยเจตนาและตามลำดับ