Hướng dẫn php try-finally without catch - php thử-cuối cùng mà không bắt được
Tôi đã thấy một số mã như thế này:
Tôi nghĩ Tại sao mã này làm theo cách này? Hỏi ngày 10 tháng 4 năm 2010 lúc 18:37Apr 10, 2010 at 18:37
1
Điều này rất hữu ích nếu bạn muốn phương pháp hiện đang thực hiện vẫn ném ngoại lệ trong khi cho phép các tài nguyên được làm sạch một cách thích hợp. Dưới đây là một ví dụ cụ thể về việc xử lý ngoại lệ từ phương thức gọi.
Đã trả lời ngày 10 tháng 4 năm 2010 lúc 18:39Apr 10, 2010 at 18:39
Taylor Leesetaylor LeeseTaylor Leese 49.6K27 Huy hiệu vàng109 Huy hiệu bạc140 Huy hiệu đồng27 gold badges109 silver badges140 bronze badges 3 Nó ở đó vì lập trình viên muốn đảm bảo rằng Đã trả lời ngày 10 tháng 4 năm 2010 lúc 18:39Apr 10, 2010 at 18:39
Taylor Leesetaylor LeeseMatti Virkkunen 49.6K27 Huy hiệu vàng109 Huy hiệu bạc140 Huy hiệu đồng9 gold badges122 silver badges157 bronze badges 1
Hỏi ngày 10 tháng 4 năm 2010 lúc 18:37That’s fine – as long as one of the callers does, i.e. as long as the exception gets ultimately handled somewhere. Điều này rất hữu ích nếu bạn muốn phương pháp hiện đang thực hiện vẫn ném ngoại lệ trong khi cho phép các tài nguyên được làm sạch một cách thích hợp. Dưới đây là một ví dụ cụ thể về việc xử lý ngoại lệ từ phương thức gọi. Đã trả lời ngày 10 tháng 4 năm 2010 lúc 18:39 Taylor Leesetaylor LeeseApr 10, 2010 at 18:40
49.6K27 Huy hiệu vàng109 Huy hiệu bạc140 Huy hiệu đồngKonrad Rudolph Nó ở đó vì lập trình viên muốn đảm bảo rằng Matti Virkkunenmatti Virkkunen 62.1K9 Huy hiệu vàng122 Huy hiệu bạc157 Huy hiệu đồng
Bởi vì rõ ràng mã không biết cách xử lý các ngoại lệ ở cấp độ này. Điều đó rất tốt - miễn là một trong những người gọi, tức là miễn là ngoại lệ cuối cùng được xử lý ở đâu đó. Thông thường, mã cấp thấp không thể phản ứng thích hợp với các ngoại lệ vì người dùng cần được thông báo hoặc ngoại lệ phải được ghi lại hoặc chiến lược khác phải được thử. Mã cấp thấp chỉ thực hiện một chức năng và không biết về việc ra quyết định cấp cao hơn.Apr 10, 2010 at 18:46
Nhưng mã vẫn cần phải làm sạch tài nguyên của nó (bởi vì nếu không có, chúng sẽ bị rò rỉ), vì vậy nó chỉ làm điều đó trong điều khoản Đã trả lời ngày 10 tháng 4 năm 2010 lúc 18:4024 silver badges31 bronze badges Konrad Rudolphkonrad Rudolph 514K125 Huy hiệu vàng918 Huy hiệu bạc1194 Huy hiệu đồngApr 10, 2010 at 18:49
Khối cuối cùng đảm bảo rằng ngay cả khi một RunTimeException bị ném (có thể là do một số lỗi trong mã được gọi là), cuộc gọi Điều này cũng thường được sử dụng để ngăn chặn quá nhiều làm tổ:24 gold badges80 silver badges118 bronze badges Đặc biệt là khi có nhiều điểm mà phương thức trả về, điều này sẽ cải thiện khả năng đọc vì bất kỳ ai cũng có thể thấy mã làm sạch được gọi trong mọi trường hợp. Đã trả lời ngày 10 tháng 4 năm 2010 lúc 18:46 FrotthowefrotthoweJan 11, 2018 at 13:30
|