Tại sao 1 try có thể dùng nhiều catch
Cho dù bạn giỏi lập trình đến đâu thì đôi khi các đoạn code của bạn vẫn có lỗi. Chúng có thể là do lỗi lập trình, do người dùng nhập dữ liệu không mong muốn, phản hồi sai từ máy chủ và rất nhiều lý do khác... Show Thông thường, khi chương trình bị crash (dừng lại) do lỗi thì lỗi sẽ được in ra console ngay lập tức. Tuy nhiên, JavaScript có một cấu trúc cú pháp là
Cú pháp "try...catch"Cú pháp
Cách hoạt động của try-catch như sau:
Vì vậy, lỗi xảy ra bên trong Sau đây là một số ví dụ:
Chú ý: ► Cú pháp Ví dụ đoạn code sai cú pháp sau:
Đầu tiên, JavaScript engine đọc mã, và sau đó thực thi. Các lỗi xảy ra trong giai đoạn đọc mã được gọi là lỗi compile và không thể khôi phục được. Bởi vì JavaScript Engine không thể hiểu được đoạn mã đó. Vì vậy, ► Cú pháp try-catch hoạt động đồng bộ. Đó là bởi vì bản thân hàm được thực thi ngay sau đó, khi quá trình thực thi đã rời khỏi khối Để bắt một ngoại lệ bên trong một hàm với setTimeout, khối
Đối tượng ErrorKhi có lỗi xảy ra, JavaScript tạo ra một đối tượng chứa thông tin chi tiết về lỗi. Đối tượng này được truyền dưới dạng tham số đến
Đối với tất cả các lỗi có sẵn (built-in error), đối tượng Error có hai thuộc tính chính là:
Ngoài ra, còn các thuộc tính khác cũng có sẵn trong hầu hết các môi trường. Một trong những thuộc tính được sử dụng và hỗ trợ rộng rãi nhất là: Thuộc tính Ví dụ:
Cách sử dụng khác của catchNếu bạn không cần thông tin chi tiết về lỗi, Có thể bạn quan tâm
Sử dụng "try...catch"Sau đây, mình hãy cùng khám phá một trường hợp thực tế sử dụng
Như bạn đã biết, JavaScript hỗ trợ JSON.parse(str) để đọc các giá trị được mã hóa dạng JSON. Thông thường, JSON được sử dụng để giải mã dữ liệu nhận được qua mạng, từ server hoặc một nguồn khác. Bạn có thể nhận được JSON string và gọi
Bây giờ, nếu Dĩ nhiên là bạn không muốn điều này xảy ra phải không? Với cách xử lý trên, nếu có lỗi với dữ liệu, người dùng sẽ không bao giờ biết được điều đó - trừ khi mở DevTool. Và mọi người thực sự không thoải mái khi một cái gì đó "chỉ chết" - "không hoạt động" mà không có bất kỳ thông báo lỗi nào. Để giải quyết vấn đề này, bạn hãy sử dụng
Ở đây, mình chỉ sử dụng
"Throw" lỗi tự định nghĩaĐiều gì xảy ra nếu Ví dụ
Trong đoạn code trên, Toán tử "throw"Mỗi toán tử Cú pháp là: Về cơ bản, bạn có thể dùng bất cứ thứ gì làm đối tượng lỗi. Đó có thể là một dữ liệu nguyên thủy, như một số hoặc một chuỗi. Nhưng tốt hơn là sử dụng các object, tốt nhất là đối tượng có thuộc tính Ngoài ra, JavaScript có sẵn nhiều hàm khởi tạo lỗi như:
Đối với những lỗi có sẵn, thuộc tính
Hãy xem loại lỗi nào
Như bạn có thể thấy, đó là một Quay lại ví dụ lúc trước, việc thiếu thuộc tính Vì vậy, bạn hãy
Tại dòng Bây giờ, Kĩ thuật "rethrowing"Trong ví dụ trên, mình sử dụng Giống như một lỗi lập trình (biến không được xác định) hoặc một lỗi nào khác, không chỉ là lỗi dữ liệu không chính xác như trên. Ví dụ:
Tất nhiên, mọi thứ đều có thể xảy ra! Và bạn hoàn toàn có thể mắc sai lầm. Trong trường hợp trên, Ở đây, mình gặp lỗi không mong muốn nhưng vẫn hiển thị như cũ với nội dung Để tránh những vấn đề như trên, bạn có thể sử dụng kỹ thuật rethrowing với quy tắc đơn giản là: Kỹ thuật rethrowing có thể được giải thích chi tiết hơn như sau:
Thông thường, bạn có thể kiểm tra loại lỗi bằng cách sử dụng toán tử
Mình cũng có thể lấy tên class lỗi từ thuộc tính Trong đoạn code dưới đây, mình sử dụng kĩ
thuật rethrowing để
Câu lệnh Tóm lại, khối Ví dụ dưới đây minh họa cách các lỗi như vậy có thể được phát hiện bởi
một cấp
Ở đây, hàm Cấu trúc "try...catch...finally"Cấu trúc Nếu
Cú pháp mở rộng có dạng như sau:
Ví dụ đoạn code sau:
Đoạn code trên có hai cách thực thi như sau:
Mệnh đề Ví dụ, mình muốn đo thời gian mà hàm Fibonacci Đặc biệt, việc thực hiện Khi đó, mệnh đề Ở đây,
Bạn có thể kiểm tra lại bằng cách chạy chương trình với việc nhập Và sau đó bạn thử nhập Nói cách khác, hàm có thể kết thúc với Chú ý:
Xử lý "catch" toàn cụcGiả sử, bạn gặp một lỗi nghiêm trọng bên ngoài Và bạn có thể muốn ghi lại lỗi, hiển thị một điều gì đó cho người dùng (thông thường họ không thấy thông báo lỗi), v.v. Không có một cách thức chung nào, nhưng các môi trường khác nhau (trình duyệt, Node.js,...) thường cung cấp công cụ cho việc đó, bởi vì điều này thực sự hữu ích. Ví dụ, Node.js có Cú pháp của
Trong đó:
Ví dụ:
Vai trò của Tổng kếtCấu trúc Cú pháp đầy đủ của
Cấu trúc trên có thể không có Các đối tượng lỗi bao gồm các thuộc tính sau:
Nếu một đối tượng lỗi không cần thiết, bạn có thể bỏ qua nó bằng cách sử dụng Ngoài ra, bạn cũng có thể tạo ra lỗi của riêng mình bằng cách sử dụng toán tử Rethrowing là một cách xử lý lỗi rất quan trọng: khối Ngay cả khi bạn không có Tham khảo: Error handling, "try...catch" ★ Nếu bạn thấy bài viết này hay thì hãy theo dõi mình trên Facebook để nhận được thông báo khi có bài viết mới nhất nhé: |
Bài Viết Liên Quan
Lý do tại sao có báo cháy giả
Hiện tượng báo cháy giả rất hay sẩy ra trong một hệ thống báo cháy, nếu không lắp đặt đúng kỹ thuật và bảo trì thường xuyên. Nó làm mất tác dụng ...
L c gồm những trả như thế nào
Khi làm việc trong mảng xuất nhập khẩu liên quan đến vấn đề thanh toán chúng ta không thể không nhắc đến LC. Hiểu đơn giản, LC là một phương thức thanh ...
Từ 5 chữ cái với o và c ở giữa năm 2022
Mọi ngôn ngữ đều bắt đầu với bảng chữ cái. Tiếng Anh cũng vậy! Bảng chữ cái tiếng Anh là nền tảng đầu tiên và quan trọng cho toàn bộ quá trình học ...
Phổ điểm khối d01 2023
Tuyển sinhChủ Nhật, 24/07/2022 07:03:32 +07:00(VTC News) - Năm nay không có thí sinh nào đạt trên 29 điểm khối D01.Kết quả phân tích phổ điểm thi tốt nghiệp THPT ...
How do I add a Control Toolbox in Visual Studio?
Skip to main contentThis browser is no longer supported.Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. Article 09/01/20222 minutes to ...
Tại sao file cpp cần file header
Tại sao cần phải táchKhi lập trình với bất cứ ngôn ngữ nào thì các bạn cũng đều gặp phải một vấn đề là khi chương trình bắt đầu lớn thì sẽ khó ...
Does a patient discard or keep a first morning urine collection when collecting a 24
Collection and Preservation of 24-Hour Urine Specimens Patient: The 24-hour collection container may contain chemicals (as a preservative) that are hazardous. DO NOT urinate directly into the ...
Which access specifier refers to the access level is within the package and outside?
Skip to main contentThis browser is no longer supported.Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.Access Levels in Visual Basic ...
5 chữ cái với c và a ở giữa năm 2022
Mọi ngôn ngữ đều bắt đầu với bảng chữ cái. Tiếng Anh cũng vậy! Bảng chữ cái tiếng Anh là nền tảng đầu tiên và quan trọng cho toàn bộ quá trình học ...
Top 20 cửa hàng ba c Huyện Cát Hải Hải Phòng 2022
Bài viết đánh giá Top 20 cửa hàng ba c Huyện Cát Hải Hải Phòng 2022 theo quan điểm cá nhân của tác giả Chợ Cát Bà 1303 ...
Công ty posco như thế nào
Nhà Bảo tàng của Tập đoàn POSCO tại TP Pohang trưng bày hình tượng người lãnh đạo đất nước đã phát lệnh khởi công xây dựng Nhà máy thép liên hợp Pohang ...
Top 20 cửa hàng c Thị xã Hồng Ngự Đồng Tháp 2022
Bài viết đánh giá Top 20 cửa hàng c Thị xã Hồng Ngự Đồng Tháp 2022 theo quan điểm cá nhân của tác giả Co.opmart Hồng ...
Which structure causes a statement or set of statements to execute repeatedly quizlet?
Flashcards Learn Test Match Flashcards Learn Test Match Terms in this set (22)Sets with similar termsSets found in the same folderOther sets by this creatorVerified questions COMPUTER ...
Top 20 cửa hàng c Huyện Giá Rai Bạc Liêu 2022
Có tổng 584 đánh giá về Top 20 cửa hàng c Huyện Giá Rai Bạc Liêu 2022 Chợ Giá Rai 273 đánh giá Địa chỉ: 6FP4+4HP,TT. Giá ...
Top 10 bô phim vê ca c vi thâ n năm 2022
Trong bài viết này Bách hóa XANH sẽ giới thiệu đến bạn 10 bộ phim về thảm họa sóng thần, giúp người xem có ý thức về việc bảo vệ thiên nhiên nhé. Các ...
Top 20 cửa hàng c mart Huyện Tân Phú Đông Tiền Giang 2022
Bài viết đánh giá Top 20 cửa hàng c mart Huyện Tân Phú Đông Tiền Giang 2022 theo quan điểm cá nhân của tác giả Tops Market Âu ...
Hls trong windows 10 uwp
Chuyển đến nội dung chínhTrình duyệt này không còn được hỗ trợ nữa.Hãy nâng cấp lên Microsoft Edge để tận dụng các tính năng mới nhất, bản cập nhật ...
Chỉ số CRP ở trẻ sơ sinh
Table of ContentsXét nghiệm CRP là một loại xét nghiệm protein trong máu, phương pháp xét nghiệm này được áp dụng để kiểm tra tình trạng viêm trong cơ thể. Từ ...
Làm nút bấm bằng checkbox radio trong window form c
28V. CHUẨN THIẾT KẾ GIAO DIỆN.1. Chuẩn thiết kế giao diện Winform.1.1 Chuẩn đặt tên trong Winform.Chuẩn đặt tên cho các thành phần giao diện của WinForm.Control ...
Cách chạy từng Form trong C#
Diễn đànLẬP TRÌNH VISUAL C#Thắc mắc lập trình C# Thao tác giữa các Forms trong C# Thao tác giữa các Forms trong C# Mong các cao thủ chỉ giúp vài vấn đề, em mới ...