Hi 🤓 Cảm ơn bạn đã ghé thăm blog này, nếu những bài viết trên blog giúp ích cho bạn. Bạn có thể giúp blog hiển thị quảng cáo bằng cách tạm ngừng ad blocker 😫 và để giúp blog duy trì hoạt động nếu bạn muốn.
Cảm ơn bạn!

Việc xử lí lỗi là việc chúng ta hay nói cách khác là các developer thường gặp phải hằng ngày. Cho dù bạn có code giỏi đến đâu thì đôi khi chúng ta vẫn gặp phải một số lỗi không mong muốn. Để giúp chúng ta xử lí vấn đề này một cách dễ dàng hơn thì hôm nay mình xin giới thiệu cách sử dụng try catch trong javascript. Cùng tìm hiểu thôi nào ^^.

Cú pháp try catch

try {
    // đoạn code có thể bị lỗi
} catch (error) {
    // nơi chúng ta xử lí lỗi
}

Trong try ta sẽ viết code mà chúng ta sử dụng và code này có thể gặp một số lỗi như: lỗi cú pháp, biến không tồn tại,... Nếu xảy ra bất kỳ lỗi nào trong try thì catch sẽ thực thi ngay lập tức. Việc tiếp theo của chúng ta là xử lí lỗi đó.

Tham số trong catch sẽ nhận Error object. Chúng ta có thể log object này ra để xem chi tiết về lỗi.

Ví dụ về try catch

Đầu tiên chúng ta cùng xem một ví dụ sau:

try {
    let user;
    user.name;
} catch (error) {
    console.log( 'Some error has occured\n' + error);
}
// Some error has occured
// TypeError: Cannot read properties of undefined (reading 'name')

Chúng ta có thể sử dụng 2 thuộc tính namemessage của Error object.

try {
    let user;
    user.name;
} catch (error) {
    console.log('Error name: ' + error.name);
    console.log('Error message: ' + error.message);
}

// Error name: TypeError
// Error message: Cannot read properties of undefined (reading 'name')

throw trong javascript

Tham số error trong catch là một Error object mặc định của javascript. Vậy để custom error thì chúng ta làm cách nào? Câu trả lời là ta sẽ sử dụng để throw keyword mà javascript cung cấp cho chúng ta.

Lệnh throw sẽ ném một exception (ngoại lệ) do chúng ta tạo ra. Việc thực thi hàm hiện tại sẽ bị dừng lại tức là các lệnh sau khi chúng ta throw sẽ không được chạy và công việc tiếp theo sẽ được chuyển cho catch xử lí.

Sau đây là một số cách để chúng ta sử dụng throw:

throw 'đây là lỗi'; // tạo ra một exception là một thông báo kiểu string
throw 404;
throw true;
throw new Error('lỗi mất rồi');  // tạo ra một exception là một object với message

Sử dụng throw cho try catch

Chúng ta cùng xem ví dụ dưới đây nhé:

function getUser(username) {
  if (typeof username !== 'string') {
    throw 'Username phải có kiểu là string'; // chuyển ngay đến `catch`
  }

  return 'user';
}

try {
  getUser(2902);
} catch (e) {
  console.error(e);
  // expected output: "Username phải có kiểu là string"
}

Ta có thể thấy khi username không phải là string thì ta sẽ throw ra một đoạn message. Và tất cả những đoạn code bên dưới sẽ không thể chạy vì lúc này công việc sẽ được chuyển cho catch để xử lí lỗi.

finally block

Khi sử dụng finally, nó sẽ thực thi mọi lúc bất kể lỗi có xảy ra hay không.

try {
   throw new Error('Lỗi mất rồi'); // tạo exception và catch được thực thi
} catch (error) {
    console.log(error);
} finally {
    console.log('finally thực thi');
}

//try thực thi
//catch thông báo lỗi
//finally thực thi

Lời kết

Như vậy là mình đã hướng dẫn xong cách sử dụng try catch trong javascript. Nhờ nó chúng ta có thể xử lí lỗi một cách hiệu quả hơn đúng không nào ^^.

Cuối cùng, chúc các bạn có một ngày học tập hiệu quả nhé. Hẹn gặp lại các bạn ở bài tiếp theo.

Có thể bạn thích ⚡
homiedev
About Me

Hi, I'm @devnav. Một người thích chia sẻ kiến thức, đặc biệt là về Frontend 🚀. Trang web này được tạo ra nhằm giúp các bạn học Frontend hiệu quả hơn 🎉😄.

Chúc các bạn tìm được kiến thức hữu ích trong blog này 😁😁.