Sự khác biệt ngữ nghĩa chính xác giữa \Exception
và \RuntimeException
trong PHP là gì? Khi nào chúng ta nên sử dụng cái trước và khi nào?
Trig
9.8246 huy hiệu vàng55 Huy hiệu bạc106 Huy hiệu đồng6 gold badges55 silver badges106 bronze badges
Đã hỏi ngày 12 tháng 1 năm 2017 lúc 8:17Jan 12, 2017 at 8:17
Sensorariosensorariosensorario
18.8K27 Huy hiệu vàng93 Huy hiệu bạc152 Huy hiệu Đồng27 gold badges93 silver badges152 bronze badges
11
Ngoại lệ là một lớp cơ sở của tất cả các trường hợp ngoại lệ trong PHP [bao gồm cả RunTimeException]. Như tài liệu nói:
RunTimeException bị ném nếu xảy ra lỗi chỉ có thể tìm thấy khi chạy.
Điều đó có nghĩa là bất cứ khi nào bạn mong đợi một cái gì đó thường sẽ hoạt động, sẽ sai, ví dụ: phân chia theo số 0 hoặc chỉ mục mảng ngoài phạm vi, v.v. Bạn có thể ném RunTimeException.
Đối với ngoại lệ, nó là một ngoại lệ rất chung chung và tôi sẽ gọi nó là "phương sách cuối cùng". Bạn có thể thêm nó như một cái cuối cùng trong "thử" chỉ để chắc chắn rằng bạn đang xử lý tất cả các ngoại lệ.
Thí dụ:
try {
//code...
} catch[RuntimeException $e] {
echo ["RuntimeException..."];
} catch[Exception $e] {
echo ["Error something went wrong!"];
var_dump[$e];
}
Hy vọng nó là một rõ ràng bây giờ.
yivi
37.8K18 Huy hiệu vàng96 Huy hiệu bạc121 Huy hiệu đồng18 gold badges96 silver badges121 bronze badges
Đã trả lời ngày 12 tháng 1 năm 2017 lúc 8:32Jan 12, 2017 at 8:32
4
Sự khác biệt duy nhất giữa hai người đó là ngữ nghĩa. \RuntimeException
kế thừa từ \Exception
. Về cơ bản không có sự khác biệt khác.
Bạn có thể tạo ra các ngoại lệ của riêng mình kế thừa từ cả hai trên, cách sử dụng phổ biến nhất là kế thừa từ \Exception
.
yivi
37.8K18 Huy hiệu vàng96 Huy hiệu bạc121 Huy hiệu đồng18 gold badges96 silver badges121 bronze badges
Đã trả lời ngày 12 tháng 1 năm 2017 lúc 8:32Jan 12, 2017 at 8:33
Sự khác biệt duy nhất giữa hai người đó là ngữ nghĩa. \RuntimeException
kế thừa từ \Exception
. Về cơ bản không có sự khác biệt khác.Mateusz Woźniak
Bạn có thể tạo ra các ngoại lệ của riêng mình kế thừa từ cả hai trên, cách sử dụng phổ biến nhất là kế thừa từ \Exception
.1 gold badge9 silver badges10 bronze badges
RunTimeException bị ném nếu xảy ra lỗi chỉ có thể tìm thấy khi chạy.
Điều đó có nghĩa là bất cứ khi nào bạn mong đợi một cái gì đó thường sẽ hoạt động, sẽ sai, ví dụ: phân chia theo số 0 hoặc chỉ mục mảng ngoài phạm vi, v.v. Bạn có thể ném RunTimeException.
Đối với ngoại lệ, nó là một ngoại lệ rất chung chung và tôi sẽ gọi nó là "phương sách cuối cùng". Bạn có thể thêm nó như một cái cuối cùng trong "thử" chỉ để chắc chắn rằng bạn đang xử lý tất cả các ngoại lệ.
Thí dụ:
Hy vọng nó là một rõ ràng bây giờ.Feb 2 at 14:39
yiviTRiG
9.8246 huy hiệu vàng55 Huy hiệu bạc106 Huy hiệu đồng6 gold badges55 silver badges106 bronze badges
37.8K18 Huy hiệu vàng96 Huy hiệu bạc121 Huy hiệu đồng
Đã trả lời ngày 12 tháng 1 năm 2017 lúc 8:32
Sự khác biệt duy nhất giữa hai người đó là ngữ nghĩa. \RuntimeException
kế thừa từ \Exception
. Về cơ bản không có sự khác biệt khác.Aug 23 at 11:48
1