Cảm ơn bạn!
Try Catch Javascript là gì? Tìm hiểu về Try Catch trong Javascript
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 name và message 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.