Xử lý ngoại lệ trong JavaScript
Để xử lý ngoại lệ, người ta sử dụng
cấu trúc try-catch. Nó có
cú pháp như sau:
try {
// mã
} catch (error) {
// xử lý lỗi
}
Trong khối try nên đặt mã
có thể chứa ngoại lệ. Nếu
trong quá trình thực thi mã này xuất hiện
một tình huống ngoại lệ, thì tập lệnh của chúng ta sẽ không
bị sập với lỗi trong console, mà sẽ bắt đầu thực thi
mã trong khối catch.
Trong khối này, chúng ta phải phản ứng một cách
hợp lý nào đó đối với lỗi. Ví dụ,
nếu chúng ta muốn gửi một số dữ liệu
qua internet và internet không hoạt động, thì
trong khối catch chúng ta có thể xử lý
tình huống: có thể, chẳng hạn, hiển thị thông báo
cho người dùng, hoặc có thể sau một khoảng thời gian
cố gắng gửi dữ liệu lại - biết đâu
internet đã hoạt động trở lại.
Nếu trong quá trình thực thi khối try không xảy ra
tình huống ngoại lệ nào, thì
mã hữu ích sẽ đơn giản được thực thi, còn mã từ
khối catch thì không.
Ví dụ, hãy thử phân tích JSON và trong trường hợp nó không đúng định dạng, hiển thị ra màn hình thông báo về điều này:
try {
let data = JSON.parse('{1,2,3,4,5}');
} catch (error) {
alert('không thể thực hiện thao tác phân tích JSON');
}
Cho mã, ghi một chuỗi nào đó vào bộ nhớ cục bộ:
let str = 'một chuỗi nào đó';
localStorage.setItem('key', str);
Bọc mã này trong cấu trúc try-catch.
Trong khối catch, hãy hiển thị thông báo về
việc tràn bộ nhớ. Kiểm tra hoạt động
của mã của bạn với chuỗi có kích thước dưới 5
MB và với chuỗi có kích thước lớn hơn.
Cho một JSON, bên trong nó lưu một mảng.
Nếu JSON này hợp lệ, hãy hiển thị các phần tử
của mảng dưới dạng danh sách ul. Còn nếu
JSON không hợp lệ, hãy hiển thị trên màn hình thông báo
rằng đã xảy ra lỗi trên trang.