Cách xử lý và kiểm tra lỗi trong JavaScript

Xử lý và kiểm tra lỗi (error handling) là một phần quan trọng trong việc phát triển ứng dụng JavaScript. Trong bài viết này, chúng ta sẽ tìm hiểu cách xử lý và kiểm tra lỗi trong JavaScript.

Sử dụng câu lệnh try…catch

Câu lệnh try…catch là một cấu trúc trong JavaScript cho phép chúng ta xử lý các lỗi (exceptions) trong một khối mã. Đầu tiên, chúng ta đặt mã có thể gây lỗi vào trong khối try. Nếu có bất kỳ lỗi nào xảy ra trong khối try, mã trong khối catch sẽ được thực thi.

Dưới đây là một ví dụ minh họa:

try {
// Mã có thể gây lỗi
const result = 10 / 0;
console.log(result);
} catch (error) {
// Xử lý lỗi
console.log('Đã xảy ra lỗi:', error);
}

 

Trong ví dụ trên, chúng ta chia một số cho 0 trong khối try, điều này sẽ gây ra lỗi. Trong khối catch, chúng ta xử lý lỗi bằng cách in thông báo lỗi ra màn hình.

The Brutal Lifecycle of JavaScript Frameworks - Stack Overflow Blog

Sử dụng câu lệnh throw

Chúng ta cũng có thể tự mình tạo ra lỗi (throw an error) bằng câu lệnh throw trong JavaScript. Điều này cho phép chúng ta thông báo về một tình huống đặc biệt hoặc kiểm soát luồng của chương trình.

Dưới đây là một ví dụ:

function divide(a, b) {
if (b === 0) {
throw new Error('Số chia không thể bằng 0');
}

return a / b;
}

try {
const result = divide(10, 0);
console.log(result);
} catch (error) {
console.log('Đã xảy ra lỗi:', error.message);
}

 

Trong ví dụ trên, chúng ta tạo một hàm divide để chia một số cho một số khác. Nếu số chia bằng 0, chúng ta sẽ ném một lỗi bằng câu lệnh throw. Trong khối catch, chúng ta xử lý và hiển thị thông báo lỗi.

Check If a String Has Only Numbers in JavaScript - Maker's Aid

Sử dụng câu lệnh finally

Câu lệnh finally được sử dụng để đặt mã sẽ được thực thi bất kể có lỗi xảy ra hay không. Nó được đặt sau khối try…catch và sẽ được thực thi cuối cùng, dù có lỗi hay không.

Dưới đây là một ví dụ:

try {
// Mã có thể gây lỗi
console.log('Thực hiện mã trong khối try');
} catch (error) {
console.log('Đã xảy ra lỗi:', error);
} finally {
console.log('Thực hiện mã trong khối finally');
}

 

Trong ví dụ trên, mã trong khối try sẽ được thực hiện. Dù có lỗi xảy ra hay không, mã trong khối finally cũng sẽ được thực hiện.

4586066 word clouds, programming, black background, minimalism - Rare  Gallery HD Wallpapers

Xử lý lỗi không đồng bộ

Khi làm việc với các tác vụ không đồng bộ như AJAX, Promise hoặc async/await, chúng ta cần sử dụng các phương thức xử lý lỗi đặc biệt.

Ví dụ với Promise:

fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.log('Đã xảy ra lỗi:', error));

 

Trong ví dụ trên, chúng ta sử dụng .catch() để xử lý lỗi trong chuỗi Promise. Nếu có lỗi xảy ra trong quá trình fetch hoặc xử lý dữ liệu, mã trong .catch() sẽ được thực thi.

Simple Analog Clock using HTML, CSS and JavaScript - foolishdeveloper.com

Xử lý và kiểm tra lỗi là một phần quan trọng trong việc phát triển ứng dụng JavaScript. Chúng ta có thể sử dụng câu lệnh try…catch để xử lý lỗi trong khối mã cụ thể. Ngoài ra, chúng ta có thể sử dụng câu lệnh throw để ném lỗi tự định nghĩa và câu lệnh finally để thực thi mã bất kể có lỗi hay không. Khi làm việc với các tác vụ không đồng bộ, chúng ta cần sử dụng các phương thức xử lý lỗi đặc biệt như .catch() trong Promise.

Tags: