Hướng dẫn is try catch good javascript? - cố gắng nắm bắt javascript tốt không?
Câu lệnh Show Thử nóCú pháp
9Các tuyên bố sẽ được thực thi. 0Tuyên bố được thực thi nếu một ngoại lệ được ném vào khối ____ 13. 2 Tùy chọnOptionalMột định danh tùy chọn để giữ ngoại lệ bị bắt cho khối 4 được liên kết. Nếu khối 4 không sử dụng giá trị của ngoại lệ, bạn có thể bỏ qua 2 và dấu ngoặc đơn xung quanh của nó, là 6. 7Các câu lệnh được thực thi trước khi luồng điều khiển thoát khỏi cấu trúc 8. Những tuyên bố này thực hiện bất kể một ngoại lệ đã bị ném hay bị bắt.Sự mô tảCâu lệnh 3 luôn bắt đầu với khối 3. Sau đó, một khối 4 hoặc một khối 5 phải có mặt. Cũng có thể có cả các khối 4 và 5. Điều này cung cấp cho chúng tôi ba biểu mẫu cho tuyên bố 3:
Không giống như các cấu trúc khác như 9 hoặc 0, các khối 3, 4 và 5 phải là các khối, thay vì các câu lệnh đơn.
Một khối ____ 14 chứa các câu lệnh chỉ định phải làm gì nếu một ngoại lệ được ném vào khối ____ 13. Nếu bất kỳ câu lệnh nào trong khối ____ 13 (hoặc trong một hàm được gọi từ trong ____ 13 khối) ném một ngoại lệ, điều khiển sẽ được chuyển ngay sang khối ____ 14. Nếu không có ngoại lệ nào được ném vào khối ____ 13, ____ 14 khối được bỏ qua. Khối 5 sẽ luôn thực hiện trước khi luồng điều khiển thoát khỏi cấu trúc 8. Nó luôn luôn thực thi, bất kể một ngoại lệ đã bị ném hay bị bắt.Bạn có thể làm tổ một hoặc nhiều câu lệnh 3. Nếu câu lệnh 3 bên trong không có khối ____ 14, thì câu lệnh ________ 14 của câu lệnh 3 được sử dụng thay thế.Bạn cũng có thể sử dụng câu lệnh 3 để xử lý các ngoại lệ JavaScript. Xem Hướng dẫn JavaScript để biết thêm thông tin về ngoại lệ JavaScript.Khối bắt vô điều kiệnKhi sử dụng khối ____ 14, khối ____ 14 được thực hiện khi bất kỳ ngoại lệ nào được ném từ trong khối ____ 13 khối. Ví dụ: khi ngoại lệ xảy ra trong mã sau, điều khiển chuyển sang khối 14 ____.
____ 14 khối chỉ định một định danh ( 4 trong ví dụ trên) giữ giá trị của ngoại lệ; Giá trị này chỉ có sẵn trong phạm vi của khối 14 ____.Khối lượng bắt có điều kiệnBạn có thể tạo "có điều kiện ____ 14 khối" bằng cách kết hợp các khối 2 với các cấu trúc 8, như thế này:
Một trường hợp sử dụng phổ biến cho điều này là chỉ bắt (và im lặng) một tập hợp nhỏ các lỗi dự kiến, sau đó ném lại lỗi trong các trường hợp khác:
Định danh ngoại lệKhi một ngoại lệ được ném vào ____ 13 khối, 0 (tức là, 4 trong 2) giữ giá trị ngoại lệ. Bạn có thể sử dụng định danh này để có được thông tin về ngoại lệ đã bị ném. Mã định danh này chỉ có sẵn trong phạm vi của ____ 14 khối. Nếu bạn không cần giá trị ngoại lệ, nó có thể bị bỏ qua.
Khối cuối cùngKhối 5 chứa các câu lệnh để thực thi sau khối 3 và khối 4 thực thi, nhưng trước các câu lệnh theo khối 8. Luồng điều khiển sẽ luôn vào khối 5, có thể tiến hành theo một trong các cách sau:
Nếu một ngoại lệ được ném từ khối 3, ngay cả khi không có khối 4 để xử lý ngoại lệ, khối 5 vẫn thực thi, trong trường hợp đó, ngoại lệ vẫn được ném ngay sau khi khối 5 hoàn thành thực thi.Ví dụ sau đây cho thấy một trường hợp sử dụng cho ____ 15 khối. Mã mở một tệp và sau đó thực thi các câu lệnh sử dụng tệp; Khối 15 ____ đảm bảo rằng tệp luôn đóng sau khi nó được sử dụng ngay cả khi một ngoại lệ được ném.
Kiểm soát các báo cáo dòng chảy ( 1, 2, 3, 4) trong khối 5 sẽ "che dấu" bất kỳ giá trị hoàn thành nào của khối 3 hoặc khối 4. Trong ví dụ này, khối 3 cố gắng trả về 1, nhưng trước khi quay lại, luồng điều khiển được mang lại cho khối 5 trước, do đó, giá trị trả về của khối 5 được trả về thay thế.
Nói chung, một ý tưởng tồi là có các câu lệnh điều khiển trong khối 5. Chỉ sử dụng nó cho mã dọn dẹp.Ví dụCác khối cố gắng lồng nhauĐầu tiên, hãy xem điều gì xảy ra với điều này:
Bây giờ, nếu chúng ta đã bắt được ngoại lệ ở bên trong ____ 13 khối bằng cách thêm ____ 14 khối:
Và bây giờ, chúng ta hãy xác nhận lỗi. 0Bất kỳ ngoại lệ nhất định sẽ chỉ bị bắt một lần bởi ____ 14 khối gần nhất trừ khi nó được rethrown. Tất nhiên, bất kỳ ngoại lệ mới nào được nêu trong khối "bên trong" (vì mã trong ____ 14 khối có thể làm một cái gì đó ném), sẽ bị chặn bởi khối "bên ngoài". Trở về từ một khối cuối cùngNếu ________ 15 khối trả về giá trị, giá trị này sẽ trở thành giá trị trả về của toàn bộ câu lệnh 09, bất kể bất kỳ câu lệnh 1 nào trong 3 và ________ 14 khối. Điều này bao gồm các trường hợp ngoại lệ được ném vào bên trong ____ 14 khối: 1"OOPS" bên ngoài không bị ném vì sự trở lại trong khối 15 ____. Điều tương tự sẽ áp dụng cho bất kỳ giá trị nào được trả lại từ khối 14 ____. Thông số kỹ thuật
Tính tương thích của trình duyệt webBảng BCD chỉ tải trong trình duyệt Xem thêmĐang sử dụng thử Catch Good?Không cần thử, bạn có nguy cơ gặp phải ngoại lệ chưa được xử lý.Hãy thử các câu lệnh bắt không miễn phí ở chỗ chúng đi kèm với chi phí hiệu suất.Giống như bất kỳ tính năng ngôn ngữ nào, thử bắt bắt có thể được sử dụng quá mức.
Nên thử bắt được tránh được?Khi nào bạn nên tránh sử dụng thử nghiệm?Nếu bạn biết một lỗi có khả năng xảy ra, bạn không nên sử dụng câu lệnh TRY-Catch vì bạn muốn gỡ lỗi vấn đề hơn là ngụy trang nó.If you know an error is likely to happen, you shouldn't use the try-catch statement since you'd rather debug the problem than disguise it.
Là tốt hơn để sử dụng nếu khác hoặc thử bắt?Nói chung, các khối thử thử rất tuyệt vời vì chúng sẽ phá vỡ (chuyển sang câu lệnh bắt) bất cứ khi nào ngoại lệ xảy ra. Các khối else dựa trên bạn dự đoán khi lỗi sẽ xảy ra.Chỉnh sửa: Ngoài ra, các khối bắt sẽ không ngăn được mã của bạn tạm dừng khi bị lỗi.try-catch blocks are great because they will break (move to the catch statement) whenever the exception occurs. If-else blocks rely on you predicting when the error will happen. Edit: Also, catch blocks won't stop your code from halting when an error is hit. |