Xử lý lỗi JavaScript
Ứng dụng của bạn trở nên mạnh mẽ hơn khi bạn có kinh nghiệm lập trình. Các cải tiến đối với kỹ thuật mã hóa đóng một vai trò quan trọng nhưng bạn cũng sẽ học cách xem xét các trường hợp cạnh. Nếu một cái gì đó có thể đi sai, nó sẽ đi sai. thông thường khi người dùng đầu tiên truy cập hệ thống mới của bạn Show
Một số lỗi có thể tránh được
Các lỗi thời gian chạy khác là không thể tránh được
Đây có thể là tạm thời. Bạn không nhất thiết phải mã hóa theo cách của mình để thoát khỏi những vấn đề này nhưng bạn có thể lường trước các vấn đề, thực hiện các hành động thích hợp và làm cho ứng dụng của bạn linh hoạt hơn Hiển thị lỗi là phương án cuối cùngTất cả chúng ta đều gặp lỗi trong các ứng dụng. Một số hữu ích “Tệp đã tồn tại. Bạn có muốn ghi đè lên nó không?” Những người khác thì ít hơn “LỖI 5969” Hiển thị lỗi cho người dùng phải là biện pháp cuối cùng sau khi sử dụng hết tất cả các tùy chọn khác Bạn có thể bỏ qua một số lỗi ít nghiêm trọng hơn như hình ảnh không tải được. Trong các trường hợp khác, có thể thực hiện các hành động khắc phục hoặc phục hồi. Ví dụ: nếu bạn không thể lưu dữ liệu vào máy chủ do lỗi mạng, bạn có thể lưu trữ tạm thời dữ liệu đó trong IndexedDB hoặc localStorage và thử lại sau vài phút. Chỉ cần hiển thị cảnh báo khi lưu nhiều lần không thành công và người dùng có nguy cơ mất dữ liệu. Thậm chí sau đó. đảm bảo người dùng có thể thực hiện các hành động phù hợp. Họ có thể kết nối lại với mạng nhưng điều đó sẽ không hữu ích nếu máy chủ của bạn ngừng hoạt động Xử lý lỗi trong JavaScriptXử lý lỗi đơn giản trong JavaScript nhưng nó thường bị che giấu trong bí ẩn và có thể trở nên phức tạp khi xem xét mã không đồng bộ Một "lỗi" là một đối tượng mà bạn có thể đưa ra để đưa ra một ngoại lệ — ngoại lệ này có thể làm dừng chương trình nếu nó không được nắm bắt và xử lý một cách thích hợp. Bạn có thể tạo một đối tượng 8 bằng cách chuyển một thông báo tùy chọn tới hàm tạo
Bạn cũng có thể sử dụng 8 giống như một hàm không có 0 — nó vẫn trả về một đối tượng 8 giống như ở trên
Bạn có thể chuyển tên tệp và số dòng làm tham số thứ hai và thứ ba
Điều này hiếm khi cần thiết vì chúng mặc định cho dòng mà bạn đã tạo đối tượng 8 trong tệp hiện tạiSau khi được tạo, một đối tượng 8 có các thuộc tính sau mà bạn có thể đọc và viết
Các thuộc tính đọc/ghi sau đây cũng được hỗ trợ trong Firefox
Các loại lỗiCũng như một 8 chung, JavaScript hỗ trợ các loại lỗi cụ thể
Trình thông dịch JavaScript sẽ đưa ra các lỗi thích hợp khi cần thiết. Trong hầu hết các trường hợp, bạn sẽ sử dụng 8 hoặc có lẽ là 58 trong mã của riêng bạnNém một ngoại lệTạo một đối tượng 8 không tự làm gì cả. Bạn phải sử dụng câu lệnh 57 để, bạn biết đấy, “ném” một 8 để đưa ra một ngoại lệ 5Hàm 59 này đưa ra một giá trị 58 khi một trong hai đối số không phải là số — giá trị 71 không bao giờ được thực thi 5Thực tế để 57 một đối tượng 8 nhưng bạn có thể sử dụng bất kỳ giá trị hoặc đối tượng nào 7Khi bạn 57 một ngoại lệ, nó sẽ tạo bong bóng trong ngăn xếp cuộc gọi - trừ khi nó bị bắt. Các ngoại lệ chưa được xử lý cuối cùng sẽ đạt đến đỉnh của ngăn xếp nơi chương trình sẽ tạm dừng và hiển thị lỗi trong bảng điều khiển DevTools, e. g 3Bắt ngoại lệBạn có thể bắt ngoại lệ trong khối 75 5Điều này thực thi mã trong khối 76, nhưng khi một ngoại lệ xảy ra, khối 77 sẽ nhận đối tượng được trả về bởi 57Một câu lệnh 79 có thể phân tích lỗi và phản ứng tương ứng, e. g 0Bạn có thể xác định một khối 30 tùy chọn nếu bạn yêu cầu mã chạy cho dù mã 31 hoặc 79 có thực thi hay không. Điều này có thể hữu ích khi dọn dẹp, e. g. để đóng kết nối cơ sở dữ liệu trong Node. js hoặc Deno 4Khối 31 yêu cầu khối 79, khối 35 hoặc cả haiLưu ý rằng khi một khối 35 chứa một 71, giá trị đó sẽ trở thành giá trị trả về cho toàn bộ 38 bất kể bất kỳ câu lệnh 71 nào trong các khối 31 và 79Phát lại phiên mã nguồn mởOpenReplay là bộ phát lại phiên mã nguồn mở cho phép bạn xem những gì người dùng làm trên ứng dụng web của bạn, giúp bạn khắc phục sự cố nhanh hơn. OpenReplay tự lưu trữ để kiểm soát hoàn toàn dữ liệu của bạn Bắt đầu tận hưởng trải nghiệm sửa lỗi của bạn - bắt đầu sử dụng OpenReplay miễn phí Các khối const e = new Error('An error has occurred', 'script.js', 99);75 lồng nhau và lỗi tính toán lạiMột ngoại lệ nổi bong bóng lên ngăn xếp và chỉ bị bắt một lần bởi khối 79 gần nhất, e. g 0Bất kỳ khối 79 nào cũng có thể 57 một ngoại lệ mới bị chặn bởi 79 bên ngoài. Bạn có thể truyền đối tượng 8 đầu tiên sang một 8 mới trong thuộc tính 59 của một đối tượng được truyền cho hàm tạo. Điều này làm cho nó có thể nâng cao và kiểm tra một chuỗi các lỗiCả hai khối 79 đều thực thi trong ví dụ này vì lỗi đầu tiên gây ra lỗi thứ hai 1Ném ngoại lệ trong các hàm không đồng bộBạn không thể 79 một ngoại lệ được đưa ra bởi một hàm không đồng bộ vì nó được đưa ra sau khi khối 75 đã hoàn tất thực thi. Điều này sẽ thất bại 2Sau khi một giây trôi qua, bảng điều khiển hiển thị 3Nếu bạn đang sử dụng một cuộc gọi lại, quy ước được coi là trong các khung và thời gian chạy như Node. js là trả về lỗi làm tham số đầu tiên cho hàm đó. Điều này không phải là ngoại lệ mặc dù bạn có thể làm điều đó theo cách thủ công khi cần thiết 4Trong ES6 hiện đại, tốt hơn hết là trả lại Promise khi xác định các hàm không đồng bộ. Khi xảy ra lỗi, phương thức 04 của Promise có thể trả về một đối tượng 8 mới (mặc dù có thể có bất kỳ giá trị hoặc đối tượng nào) 5Phương thức 06 thực thi khi truyền tham số 07 không hợp lệ để nó có thể phản ứng với đối tượng 8 được trả về 6Bất kỳ hàm nào trả về 09 đều có thể được gọi bởi hàm 40 bằng cách sử dụng câu lệnh 41. Bạn có thể chứa điều này trong một khối 75 chạy giống hệt với ví dụ Lời hứa ________ 543/________ 544 ở trên nhưng có thể dễ đọc hơn một chút 7Lỗi là không thể tránh khỏiDễ dàng tạo đối tượng lỗi và tăng ngoại lệ trong JavaScript. Phản ứng thích hợp và xây dựng các ứng dụng linh hoạt có phần khó khăn hơn. Lời khuyên tốt nhất. mong đợi những điều bất ngờ và xử lý lỗi càng sớm càng tốt lỗi là gìJavaScript cung cấp cơ chế xử lý lỗi để bắt lỗi thời gian chạy bằng cách sử dụng khối try-catch-finally , tương tự như các ngôn ngữ khác như Java hoặc C#. cú pháp. try { // mã có thể gây ra lỗi } catch(ex) { // mã sẽ được thực thi nếu xảy ra lỗi } cuối cùng{ // mã sẽ được thực thi bất kể có xảy ra lỗi hay không }
Làm cách nào để giải quyết lỗi JavaScript?Sửa lỗi JavaScript . Mở trang demo Lỗi JavaScript được báo cáo trong công cụ Bảng điều khiển trong cửa sổ hoặc tab mới Nhấp chuột phải vào bất kỳ đâu trong trang web rồi chọn Kiểm tra. Hoặc, nhấn F12. . Nhấp vào nút Mở bảng điều khiển để xem lỗi ở trên cùng bên phải. . Nhấp vào lỗi Làm cách nào để xử lý xử lý ngoại lệ trong JavaScript?Cách xử lý ngoại lệ trong JavaScript . Câu lệnh try-catch-finally là một đoạn mã hoặc chương trình xử lý các trường hợp ngoại lệ Mệnh đề try chạy mã tạo ngoại lệ Mệnh đề catch bắt các ngoại lệ được ném ra Một mệnh đề cuối cùng luôn luôn được thực thi Câu lệnh ném tạo ra ngoại lệ Làm cách nào để đưa ra lỗi trong JavaScript?tạo (Lỗi. nguyên mẫu); . ném New CustomException('Thông báo ngoại lệ'); |