Hướng dẫn sử dụng try ... catch trong Javascript
Giới thiệu
Lỗi (bug) luôn là những thứ gây mất thời gian và là nguyên nhân đau đầu của nhiều ae Developer. Nguyên nhân của lỗi đến từ rất nhiều lý do như network failed, viết code sai cú pháp, giá trị truyền vào sai kiểu, không khai báo biến trước khi sử dụng, bala bala... Nhưng dù là nguyên nhân nào đi nữa thì điều quan trọng khi gặp lỗi là làm thế nào để có thể tìm ra nguyên nhân nhanh nhất
Hiểu được điều đó nên hầu hết các ngôn ngữ đều cung cấp những phương thức giúp chúng ta kiểm soát lỗi. Cái mà tôi muốn nói đến ở đây là try...catch
nó giống nhau ở hầu hết các ngôn ngữ, Javascript cũng vậy. Mục tiêu của try catch
là kiểm soát được những lỗi nằm ngoài tầm kiểm soát code của bạn.
Cách sử dụng vô cùng đơn giản như sau
try {
// Main logic
} catch(error) {
// When have any errors
}
Bây giờ chúng ta sẽ thử trong try
block với một vài dòng code lỗi. Khi đó, bất kỳ lỗi nào trong try
block nó chạy vào catch
block. Tham số error của function catch()
là một object chứa đầy đủ thông tin về lỗi mà bạn đang gặp phải
ry {
let car;
car.value;
} catch (error) {
console.log( 'Some error has occured\n' + error);
}
// Some error has occured
//TypeError: Cannot read property 'value' of undefined
Chúng ta cũng có thể sử dụng name và thuộc tính message của object lỗi để xem chi tiết
try {
let car;
car.value;
} catch (error) {
console.log('Error name: ' + error.name);
console.log('Error message: ' + error.message);
}
//Error name: TypeError
//Error message: Cannot read property 'value' of undefined
Throw lỗi
Trường hợp trong try
block các bạn đã kiểm tra được lỗi với if else rồi nhưng vẫn muốn đẩy thông báo xuống catch
để xử lý thì chúng ta có thể dùng throw() như sau
try {
throw new Error('This is a custom error');
} catch (error) {
console.log(error);
}
//Error: This is a custom error
Nested try…catch block
Trong một số trường hợp, bạn muốn sử dụng try ... catch lồng nhau bạn có thể sử dụng như sau
try {
try {
throw new Error('some error');
} catch (error) {
console.log('inner catch block - ' + error);
}
} catch (error) {
console.log('outer catch block - ' + error);
}
//inner catch block - Error: some error
Finally block
Là phần chạy cuối cùng kể có chương trình của bạn có lỗi hay không
try {
console.log('try block executes')
} catch (error) {
console.log('catch block - '+error);
} finally {
console.log('finally block executes');
}
// try block executes
// finally block executes
Tổng kết
Hy vọng qua bài này các bạn hiểu rõ hơn về cách sử dụng Try Catch trong Javascript và biết ứng dụng vào công việc hàng ngày của mình.
Thanks