Các loại tình huống phát sinh trong JavaScript
Trong JavaScript có rất ít tình huống dẫn đến ngoại lệ. Thứ nhất, đơn giản vì có rất ít nơi để chúng phát sinh.
Thứ hai, vì bản thân ngôn ngữ này "khoan dung": nó bỏ qua rất nhiều thứ, ví dụ, phép chia cho 0 hoặc mã HTML không hợp lệ. Ngay cả khi bạn chỉ định đường dẫn sai đến hình ảnh mà bạn định tải, JavaScript cũng sẽ tha thứ cho điều đó và không coi đó là một ngoại lệ.
Tuy nhiên, các tình huống ngoại lệ vẫn tồn tại. Chúng ta sẽ phân tích hai tình huống đơn giản nhất và qua ví dụ đó học cách làm việc với ngoại lệ trong JavaScript.
Ngoại lệ đầu tiên phát sinh khi chúng ta muốn phân tích cú pháp JSON không hợp lệ:
let data = JSON.parse('{1,2,3,4,5}'); // json này không hợp lệ
Và ngoại lệ thứ hai phát sinh khi bộ nhớ cục bộ
được phân bổ cho trang web của chúng ta bị tràn
(hơn 5 megabyte). Hãy tạo ra một ngoại lệ như vậy một cách nhân tạo:
let str = '';
for (let i = 1; i <= 6 * 10 ** 6; i++) { // tạo chuỗi hơn 5 mb
str += '+';
}
localStorage.setItem('key', str); // cố gắng ghi vào bộ nhớ
JavaScript phản ứng thế nào với những tình huống ngoại lệ như vậy? Nó chỉ đơn giản là báo lỗi vào console và dừng việc thực thi tập lệnh tiếp theo.
Nhiệm vụ của chúng ta, với tư cách lập trình viên, là
bắt được tình huống như vậy và bằng cách nào đó
xử lý nó, không để chương trình hoàn toàn
dừng việc thực thi của nó. Để làm điều này
tồn tại một cấu trúc đặc biệt try-catch,
mà chúng ta sẽ phân tích trong các bài học tiếp theo.
Tạo một chuỗi đủ lớn và cố gắng ghi nó vào bộ nhớ cục bộ. Hãy đảm bảo rằng sẽ có lỗi trong console.
Cố gắng phân tích cú pháp JSON không hợp lệ. Hãy đảm bảo rằng sẽ có lỗi trong console.