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ệ:

javascriptlet 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:

javascriptlet 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.

Задание 1

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.

Задание 2

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.