Tại sao 1 try có thể dùng nhiều catch

Cho dù bạn giỏi lập trình đến đâu thì đôi khi các đoạn code của bạn vẫn có lỗi. Chúng có thể là do lỗi lập trình, do người dùng nhập dữ liệu không mong muốn, phản hồi sai từ máy chủ và rất nhiều lý do khác...

Thông thường, khi chương trình bị crash [dừng lại] do lỗi thì lỗi sẽ được in ra console ngay lập tức.

Tuy nhiên, JavaScript có một cấu trúc cú pháp là try...catch cho phép bạn bắt lỗi để làm điều gì đó hợp lý hơn thay vì để chương trình crash như:

  • Hiển thị thông báo lỗi.
  • Thay đổi giao diện để hiển thị lỗi.
  • ...vv

Cú pháp "try...catch"

Cú pháp try...catch có hai khối chính là try, và sau đó là catch:

try {
  // code...
} catch [err] {
  // xủ lý lỗi
}

Cách hoạt động của try-catch như sau:

  1. Đầu tiên, đoạn mã trong try {...} được thực thi.
  2. Nếu không có lỗi thì catch [err] bị bỏ qua, việc thực thi đến cuối try và tiếp tục, bỏ qua catch.
  3. Nếu có lỗi xảy ra thì quá trình thực thi try bị dừng và chương trình chuyển đến đầu catch [err]. Trong đó, biến err [bạn có thể sử dụng bất kỳ tên nào tùy thích] sẽ chứa một đối tượng lỗi với thông tin chi tiết về lỗi đã xảy ra.

Vì vậy, lỗi xảy ra bên trong try {...} sẽ không làm chương trình bị crash - và sau đó bạn có thể làm gì đó trong catch.

Sau đây là một số ví dụ:

  • Ví dụ không có lỗi thì đoạn code console.log tại [1][2] được thực thi:

    try {
      console.log["Start of try runs"]; // [1] 

Chủ Đề