2012-05-15 23 views

Trả lời

5

Không thực sự. Nếu bạn đọc ghi chú trên trang mà bạn liên kết:

Lưu ý:

Internal PHP chức năng chủ yếu sử dụng Error reporting, chỉ hiện đại Object oriented mở rộng sử dụng ngoại lệ. Tuy nhiên, lỗi có thể đơn giản được dịch sang ngoại lệ với ErrorException.

+0

Xin cảm ơn! Điều đó là hợp lý! Nhưng nó nói "* chủ yếu * sử dụng báo cáo lỗi". Có thực sự không? – powtac

+2

@powtac: Ngoại lệ không được thêm vào PHP cho đến PHP5. Vì vậy, bất cứ ai đã là người dùng lâu dài của bất kỳ hình thức nào của PHP sẽ tự nhiên mong đợi các hàm PHP bình thường trả về một lỗi, và không phải là một ngoại lệ. Vì vậy, ngẫu nhiên bắt đầu ném vào các chức năng mà bắt đầu trở về trường hợp ngoại lệ thay vì các lỗi sẽ ném rất nhiều người đi. Sau đó, bạn cũng cần hai phương thức xử lý: một cho các lỗi bình thường và một cho các ngoại lệ. Tại sao kết hợp cả hai lại với nhau? – animuson

+0

FYI, lỗi tự động ngoại lệ: http://stackoverflow.com/a/10919969/22470 – powtac

6
+1

Ahh có, nhưng điều đó có tính, vì dù sao thì OO ...? Tôi giải thích điều này là chỉ đề cập đến các chức năng kiểu thủ tục (mặc dù tôi có thể sai) – DaveRandom

+0

Thú vị! Nhưng như xa như tôi có thể thấy nó chỉ trong một bối cảnh OO/Class không khi gọi một hàm đơn giản. Hoặc là? – powtac

+1

Tôi nghi ngờ có bất kỳ bối cảnh nào không có OO, chỉ cần nhanh chóng greping bên trong thư mục nguồn php cho 'zend_throw_exception' cho thấy rằng chỉ có trong ngữ cảnh OO. –

1

PHP 5 có mô hình ngoại lệ tương tự như của các ngôn ngữ lập trình khác.

ErrorException

+0

Mô hình lỗi/ngoại lệ của PHP là bất kỳ điều gì ngoại trừ các ngôn ngữ khác, IMHO là một trong những bit tồi tệ nhất trong thiết kế của PHP (và điều đó đang nói điều gì đó) – DaveRandom

+3

Làm cách nào để trả lời câu hỏi này? – webbiedave

Các vấn đề liên quan