Ngừng sử dụng Try-Catch: Một cách tốt hơn để xử lý lỗi trong JavaScript

0 0 0

Người đăng: Vinh Phạm

Theo Viblo Asia

Toán tử ?= được xem như một giải pháp thay thế hiệu quả và đơn giản cho các khối try-catch truyền thống. Thay vì viết riêng biệt từng khối try-catch cho mỗi lỗi, ?= cho phép xử lý lỗi trực tiếp chỉ trong một dòng lệnh. Điều này giúp code gọn gàng và dễ đọc hơn rất nhiều. Về cơ bản, toán tử này sẽ trả về một cặp giá trị: [lỗi, kết quả]. Nếu xảy ra lỗi, giá trị đầu tiên sẽ là lỗi và giá trị thứ hai là null. Ngược lại, nếu không có lỗi, giá trị đầu tiên sẽ là null và giá trị thứ hai là kết quả.

Vấn đề về những khối Try-Catch

Trước đây, các khối try-catch được sử dụng phổ biến trong JavaScript để xử lý lỗi, đặc biệt là trong các hàm liên quan đến hoạt động bất đồng bộ. Tuy nhiên, khi có nhiều lớp try-catch lồng nhau, code sẽ nhanh chóng trở nên phức tạp, khó đọc và khó bảo trì. Điều này ảnh hưởng không nhỏ đến hiệu suất và khả năng mở rộng của ứng dụng. image.png

Giải pháp mới nhất: Sử dụng toán tử ?=

Toán tử mới ?= cung cấp một giải pháp thay thế đơn giản và hiệu quả. Thay vì viết các khối try-catch riêng biệt cho mỗi lỗi, toán tử ?= cho phép bạn xử lý lỗi trực tiếp trong một dòng. Điều này giúp mã của bạn sạch hơn và dễ đọc hơn.

Sau đây là cách hoạt động của toán tử ?=:

  • Nó trả về một cặp giá trị: [lỗi, kết quả].
  • Nếu xảy ra lỗi, giá trị đầu tiên là lỗi và giá trị thứ hai là null.
  • Nếu không có lỗi, giá trị đầu tiên là null và giá trị thứ hai là kết quả.

Chúng ta hãy xem nó đơn giản hóa ví dụ trước đó của chúng ta như thế nào: image.png

Trong phiên bản này, cả lỗi mạng và lỗi phân tích cú pháp JSON đều được xử lý trong một dòng. Không cần các khối try-catch lồng nhau, giúp mã sạch hơn và trực tiếp hơn.

Trong phiên bản này, cả lỗi mạng và lỗi phân tích cú pháp JSON đều được xử lý trong một dòng. Không cần các khối try-catch lồng nhau, giúp mã sạch hơn và trực tiếp hơn.

Tại sao ?= lại là một điều thay đổi to lớn trong JavaScript?

Mã sạch hơn: Với ?=, bạn có thể xử lý nhiều lỗi tiềm ẩn trong một dòng mà không cần sử dụng thêm các khối try-catch.

  • Xử lý lỗi tập trung: Thay vì phân tán mã xử lý lỗi trên nhiều phần khác nhau của hàm, bạn có thể giữ mọi thứ lại với nhau, giúp dễ đọc hơn.
  • Hiệu suất tốt hơn: Với ít lớp try-catch hơn, mã chạy hiệu quả hơn.
  • Xử lý bất đồng bộ dễ dàng: Đối với các hàm bất đồng bộ, toán tử ?= cho phép bạn xử lý lỗi đơn giản hơn mà không làm mất chức năng, đặc biệt hữu ích cho các API và ứng dụng web.

Để thấy được sự khác biệt, chúng ta hãy so sánh cách xử lý lỗi cũ với cách tiếp cận mới.

Đối với cách làm cũ có Try-Catch: image.png

Đối với cách làm mới sử dụng toán tử ?= image.png

Bạn thấy phiên bản thứ hai đơn giản hơn nhiều không? Phiên bản này dễ đọc và loại bỏ mã thừa.

Toán tử ?= không chỉ là một thay đổi nhỏ mà nó đại diện cho một cách tiếp cận mới, đơn giản hóa việc xử lý lỗi trong JavaScript. Việc giảm bớt các lớp try-catch cũng đồng nghĩa với việc code chạy hiệu quả hơn. ?= là một minh chứng cho sự phát triển không ngừng của JavaScript, hướng tới một ngôn ngữ lập trình mạnh mẽ và hiện đại hơn cho việc xây dựng ứng dụng web và máy chủ.

Hy vọng bài viết này cung cấp một chút kiến thức hữu ích cho bạn.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 524

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 433

- vừa được xem lúc

Một số phương thức với object trong Javascript

Trong Javascript có hỗ trợ các loại dữ liệu cơ bản là giống với hầu hết những ngôn ngữ lập trình khác. Bài viết này mình sẽ giới thiệu về Object và một số phương thức thường dùng với nó.

0 0 153

- vừa được xem lúc

Tìm hiểu về thư viện axios

Giới thiệu. Axios là gì? Axios là một thư viện HTTP Client dựa trên Promise.

0 0 145

- vừa được xem lúc

Imports và Exports trong JavaScript ES6

. Giới thiệu. ES6 cung cấp cho chúng ta import (nhập), export (xuất) các functions, biến từ module này sang module khác và sử dụng nó trong các file khác.

0 0 110

- vừa được xem lúc

Bài toán đọc số thành chữ (phần 2) - Hoàn chỉnh chương trình dưới 100 dòng code

Tiếp tục bài viết còn dang dở ở phần trước Phân tích bài toán đọc số thành chữ (phần 1) - Phân tích đề và những mảnh ghép đầu tiên. Bạn nào chưa đọc thì có thể xem ở link trên trước nhé.

0 0 245