Penerapan Jenis Pengecualian dalam JavaScript
Misalkan kita memiliki fungsi yang menerima parameter JSON dengan array data dan menulis setiap elemen array ini ke penyimpanan lokal:
function saveData(json) {
let arr = JSON.parse(json);
for (let i = 0; i < arr.length; i++) {
localStorage.setItem(i, arr[i]);
}
}
Dalam fungsi ini, situasi pengecualian dapat muncul di dua tempat: saat parsing JSON dan saat mencoba menyimpan data ke penyimpanan lokal.
Misalnya, sebagai penanganan kesalahan kita memutuskan untuk menampilkan pesan tertentu tentang masalah:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
alert('ada beberapa masalah');
}
Pesan kita, tentu saja bagus, tapi itu tidak membedakan masalah yang muncul. Lebih logis untuk menampilkan pesan tentang masalah apa yang sebenarnya terjadi.
Untuk melakukan ini, mari bedakan kesalahan yang muncul berdasarkan namanya:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
if (error.name == 'QuotaExceededError') {
alert('ruang penyimpanan habis');
}
if (error.name == 'SyntaxError') {
alert('JSON tidak valid');
}
}
Salin kode fungsi saya saveData,
dan kemudian tanpa melihat kode saya, implementasikan
penanganan kesalahan yang saya jelaskan.
Sengaja buat secara bergantian situasi pengecualian
yang mungkin muncul dalam fungsi
saveData.