Áp dụng các loại ngoại lệ trong JavaScript
Giả sử chúng ta có một hàm nhận tham số là một JSON chứa mảng dữ liệu và ghi từng phần tử của mảng này vào bộ nhớ cục bộ:
function saveData(json) {
let arr = JSON.parse(json);
for (let i = 0; i < arr.length; i++) {
localStorage.setItem(i, arr[i]);
}
}
Trong hàm này, tình huống ngoại lệ có thể xảy ra ở hai nơi: khi phân tích cú pháp JSON và khi cố gắng lưu dữ liệu vào bộ nhớ cục bộ.
Giả sử, ví dụ, để xử lý lỗi chúng ta quyết định hiển thị một thông báo về vấn đề:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
alert('một số vấn đề');
}
Thông báo của chúng ta, điều đó tốt, nhưng nó không phân biệt các vấn đề phát sinh. Hợp lý hơn là hiển thị thông báo về vấn đề cụ thể nào đã xảy ra.
Để làm điều này, hãy phân biệt các lỗi xảy ra theo tên:
try {
saveData('{1,2,3,4,5}');
} catch (error) {
if (error.name == 'QuotaExceededError') {
alert('hết dung lượng lưu trữ');
}
if (error.name == 'SyntaxError') {
alert('JSON không hợp lệ');
}
}
Sao chép mã hàm saveData của tôi,
sau đó, không nhìn vào mã của tôi, hãy triển khai
xử lý lỗi mà tôi đã mô tả.
Cố ý lần lượt tạo ra các tình huống ngoại lệ
có thể phát sinh trong hàm
saveData.