Penggunaan Jenis Pengecualian dalam JavaScript
Katakan kita mempunyai fungsi yang menerima parameter JSON dengan rangkaian data dan menulis setiap elemen rangkaian ini ke dalam storan tempatan:
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 boleh berlaku di dua tempat: semasa menghuraikan JSON dan semasa cuba menyimpan data ke dalam storan tempatan.
Katakan, sebagai contoh, untuk pemprosesan ralat kami memutuskan untuk memaparkan beberapa mesej tentang masalah:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
alert('ada beberapa masalah');
}
Mesej kami itu bagus, sudah tentu, tetapi ia tidak membezakan masalah yang timbul. Lebih logik untuk memaparkan mesej tentang masalah khusus yang berlaku.
Untuk melakukan ini, mari bezakan ralat yang berlaku mengikut namanya:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
if (error.name == 'QuotaExceededError') {
alert('ruang storan habis');
}
if (error.name == 'SyntaxError') {
alert('JSON tidak sah');
}
}
Salin kod fungsi saya saveData,
dan kemudian tanpa melihat kod saya, laksanakan
pemprosesan ralat yang saya terangkan.
Sengaja wujudkan situasi pengecualian secara bergilir
yang mungkin berlaku dalam fungsi
saveData.