Trong bài viết này, chúng ta sẽ khám phá cách sử dụng cấu trúc try catch
trong Javascript để điều hướng và bắt lỗi một cách đơn giản. Việc xử lý lỗi là rất quan trọng trong lập trình. Nếu không làm đúng cách, chúng ta sẽ mất rất nhiều thời gian để tìm ra lỗi.
- Javascript là gì? Giới thiệu về ngôn ngữ JS cho người mới học
- Lý thuyết Tin học 8 Bài 2 (mới 2023 + 10 câu trắc nghiệm): Làm quen với chương trình và ngôn ngữ lập trình
- TOP 8 ngôn ngữ thiết kế website 2023 – Xây dựng giao diện đẹp và trải nghiệm người dùng xuất sắc!
- Java – Một Ngôn Ngữ Lập Trình Hướng Đối Tượng
- Tạo website bằng PHP: Thiết kế giao diện (Phần 1)
Có người nói rằng bugs không phải là lỗi mà nó là một tính năng. Ý nghĩa của câu này là trong lập trình không phải lúc nào cũng hoàn hảo, một chương trình phải trải qua nhiều công đoạn, trong đó có công đoạn kiểm thử để tìm lỗi. Trong bài viết này, chúng ta sẽ tìm hiểu về lệnh try catch
, không chỉ trong Javascript mà hầu hết các ngôn ngữ lập trình khác cũng hỗ trợ.
Bạn đang xem: Cách xử lý lỗi với try catch trong Javascript
Contents
1. Try catch javascript là gì?
Try catch là một khối lệnh dùng để bắt lỗi chương trình trong Javascript. Chúng ta sử dụng try catch khi muốn chương trình không bị dừng khi một lệnh nào đó gặp lỗi. Thường thì đó là những lỗi do người dùng nhập sai dữ liệu hoặc thao tác không đúng.
Nếu bạn nghĩ rằng các lỗi đó có thể sử dụng lệnh if else để bắt thì thực tế không hoàn toàn như vậy. If else rất linh hoạt nhưng chỉ dùng trong trường hợp rẻ nhánh. Nó sẽ không phát hiện các lỗi nghiêm trọng về cú pháp, điều mà chỉ có try catch mới làm được.
Hầu hết các lỗi trong Javascript đều nằm trong một object xác định. Ví dụ, lỗi cú pháp thì sẽ nằm trong đối tượng syntaxError
, lỗi sử dụng biến chưa khai báo thì nằm trong đối tượng ReferenceError
, các lỗi cơ bản thì nằm trong đối tượng Error
…
Với try catch, bạn cũng có thể tự tạo ra một object error riêng. Thật hấp dẫn, phải không nào? Hãy cùng bắt đầu tìm hiểu nó ngay nhé.
2. Cú pháp lệnh try catch trong javascript
Cấu trúc try - catch
không còn xa lạ trong các ngôn ngữ lập trình khác và trong Javascript cũng tương tự.
Cú pháp như sau:
try {
// Thực hiện trong try
} catch (error) {
// Xử lý lỗi trong catch
} finally {
// Thực hiện cuối cùng, không phụ thuộc vào lỗi
}
Như vậy, luồng chạy của lệnh try catch sẽ như sau:
- Bước 1: Thực hiện trong try.
- Bước 2: Nếu trong try xuất hiện lỗi thì nhảy sang catch.
- Bước 3: Cuối cùng, nhảy xuống finally dù có lỗi hay không.
Xem thêm : Assembly là gì? Tìm hiểu về ngôn ngữ Assembly từ A – Z
Vị trí finally sẽ luôn được thực thi và sẽ thực thi cuối cùng. Finally là một tùy chọn, bạn có thể sử dụng hoặc không. Trong catch, sẽ có một tham số truyền vào, tham số này chính là một trong những đối tượng lỗi mà chúng ta đã giới thiệu ở phần 1.
Ví dụ 1: Sử dụng biến nhưng chưa định nghĩa
Nếu không sử dụng try – catch, chương trình sẽ bị dừng. Nhưng với try – catch, chương trình vẫn hoạt động bình thường.
Ví dụ: Sử dụng sai cú pháp nhưng chương trình vẫn chạy
Nếu chạy đoạn code này, bạn sẽ nhận được thông báo là biến message
chưa được định nghĩa (message is not defined
). Mặc dù có lỗi, đoạn code trong finally vẫn hoạt động bình thường, điều này chứng tỏ chương trình không bị dừng đột ngột.
3. Throw new Error() trong try catch javascript
Tham số error
trong catch chính là một đối tượng lỗi mặc định của Javascript. Tuy nhiên, có những trường hợp không phải là lỗi mà chúng ta muốn xử lý. Ví dụ, nếu người dùng nhập vào dữ liệu rỗng, chúng ta muốn xuất ra thông báo lỗi trong phần catch thì làm sao?
Trường hợp này, chúng ta sẽ sử dụng lệnh throw
để throw ra một lỗi mới như sau:
throw new Error('message');
Đối tượng Error
là một constructor, nên bạn có thể sử dụng từ khóa new
để tạo một instance của Error
.
Ví dụ: Sử dụng throw new Error(‘message’) để xuất thông báo lỗi
Xem thêm : PHP là gì? – Sự hữu ích của PHP khi lập trình phát triển web
Trong ví dụ này, chúng ta kiểm tra biến domain
. Nếu giá trị của nó không phải là freetuts.net
, chúng ta sẽ throw ra lỗi.
Kết quả:
domain này không phải là trang chủ
4. Tạo một object error có thể sử dụng trong try catch
Trong phần trước, chúng ta đã hướng dẫn cách sử dụng từ khóa throw
để throw ra một instance của Error
. Tuy nhiên, cách viết này rất cơ bản. Chúng ta hoàn toàn có thể đưa nó vào trong một class hoặc một constructor function để tiện cho việc sử dụng.
Bước 1: Tạo một object UserError
function UserError(message) {
this.message = message;
this.name = 'UserError';
}
// Hoặc
class UserError extends Error {
constructor(message) {
super(message);
this.name = 'UserError';
}
}
Bước 2: Sử dụng object UserError
Để sử dụng, chúng ta làm như sau:
try {
throw new UserError('Lỗi!');
} catch (error) {
console.error(error.name + ': ' + error.message);
}
5. Danh sách các Object Error trong Javascript
Đọc đến đây, có lẽ bạn muốn biết trong Javascript có những object error nào? Dưới đây là danh sách những error thường gặp nhất trong Javascript:
EvalError
– Lỗi trong hàmeval
.RangeError
– Nằm ngoài phạm vi giới hạn của một kiểu dữ liệu.ReferenceError
– Sử dụng một biến chưa được khai báo.SyntaxError
– Lỗi về cú pháp.URIError
– Lỗi được đưa ra nếu bạn sử dụng các ký tự không hợp lệ trong một hàm URI.
Bạn không cần chờ Javascript throw ra những lỗi này mà hoàn toàn có thể khởi tạo chúng. Sau đó, kết hợp với lệnh throw
để quăng lỗi vào phần catch.
6. Lời kết
Như vậy, chúng ta đã hướng dẫn cách sử dụng lệnh try catch trong Javascript. Đây là một lệnh rất hữu ích, phải không nào? Nếu bạn chỉ sử dụng Javascript ở mức cơ bản, có thể ít khi gặp phải lệnh này. Nhưng khi làm việc với các framework hoặc làm việc nhiều với các đối tượng, không thể thiếu nó. Hẹn gặp lại các bạn ở bài tiếp theo.
Nguồn: https://laptrinhc.edu.vn
Danh mục: Ngôn ngữ lập trình