Cách xử lý lỗi và ngoại lệ (exception handling) trong Node.js

Trong quá trình phát triển ứng dụng Node.js, việc xử lý lỗi và ngoại lệ (exception handling) là một phần quan trọng để đảm bảo ứng dụng hoạt động một cách ổn định và bảo mật. Trong bài viết này, chúng ta sẽ tìm hiểu cách xử lý lỗi và ngoại lệ trong Node.js.

Sử dụng try-catch

Trong Node.js, chúng ta có thể sử dụng cấu trúc try-catch để bắt và xử lý các ngoại lệ. Cú pháp của try-catch như sau:

try {
// Mã lệnh có thể gây ra lỗi
} catch (error) {
// Xử lý lỗi
}

 

Trong khối try, chúng ta đặt mã lệnh mà có thể gây ra lỗi. Nếu lỗi xảy ra, nó sẽ được bắt và chuyển đến khối catch. Trong khối catch, chúng ta có thể xử lý lỗi theo ý muốn, ví dụ như ghi log, thông báo người dùng, hoặc thực hiện các hành động khác.

72% nhà đầu tư tại Mỹ có kế hoạch đầu tư vào Defi trong năm 2021

Sử dụng phương thức throw

Trong trường hợp chúng ta muốn ném ra một ngoại lệ một cách tường minh, chúng ta có thể sử dụng phương thức throw. Ví dụ:

function divide(a, b) {
if (b === 0) {
throw new Error("Số chia không thể là 0");
}
return a / b;
}
try {
const result = divide(10, 0);
console.log(result);
} catch (error) {
console.log(error.message);
}

 

Trong ví dụ trên, chúng ta định nghĩa một hàm divide để chia hai số. Nếu số chia là 0, chúng ta ném ra một ngoại lệ với thông điệp tương ứng. Sau đó, trong khối try-catch, chúng ta gọi hàm divide và bắt ngoại lệ (nếu có) để xử lý.

How to Build an Error Handling Layer in Node.js | AppSignal Blog

Sử dụng sự kiện ‘error’ trong EventEmitter

Một số đối tượng trong Node.js, như EventEmitter, cung cấp sự kiện ‘error’ để bắt các lỗi. Ví dụ:

const fs = require('fs');
const readStream = fs.createReadStream('file.txt');
readStream.on(‘error’, (error) => {
console.log(‘Đã xảy ra lỗi: ‘ + error.message);
});

 

Trong ví dụ trên, chúng ta sử dụng phương thức createReadStream của module fs để tạo một ReadStream từ tệp tin ‘file.txt’. Nếu có lỗi xảy ra trong quá trình đọc tệp tin, sự kiện ‘error’ sẽ được kích hoạt và chúng ta có thể xử lý lỗi trong callback.

Helium Hotspot Spoofing and the Deny List

Sử dụng middleware trong Express

Trong ứng dụng Node.js sử dụng framework Express, chúng ta có thể sử dụng middleware để xử lý lỗi. Middleware error handling trong Express nhận các tham số err, req, res và next. Ví dụ:

app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Đã xảy ra lỗi!');
});

 

Trong ví dụ trên, chúng ta định nghĩa một middleware xử lý lỗi chung. Nếu có lỗi xảy ra trong quá trình xử lý yêu cầu, Express sẽ chuyển đến middleware này để xử lý lỗi.

The Complete Guide to Connecting to a Database in Node.js | by TRAN SON HOANG | Level Up Coding

Trên đây là một số cách cơ bản để xử lý lỗi và ngoại lệ trong Node.js. Bằng cách sử dụng các phương pháp này, bạn có thể kiểm soát và xử lý các tình huống không mong muốn trong ứng dụng của mình, đảm bảo tính ổn định và bảo mật.