Trong khi phát triển một hệ thống web php, thiết lập E_ALL | E_STRICT
để error_reporting và chăm sóc của tất cả các loại lỗi bao gồm cả lỗi thông báo là thực hành tốt.Loại lỗi nào nên dừng hệ thống, trong hệ thống web php được phát hành?
Nhưng trong hệ thống được phát hành, tôi có nên dừng hệ thống khi xảy ra lỗi thông báo không?
Hoặc tôi có nên dừng hệ thống chỉ khi E_ERROR xảy ra và bỏ qua tất cả các lỗi khác như E_WARNING, E_NOTICE hoặc E_STRICT?
Tôi nên xử lý loại lỗi nào trong trình xử lý lỗi tùy chỉnh của mình và dừng (thoát) hệ thống?
Cảnh báo chắc chắn nên dừng hệ thống (nhưng không để lại các trình xử lý lỗi/ngoại lệ gốc, viết của riêng bạn mà không tiết lộ bất kỳ thông tin lỗi nào). Mức độ lỗi thấp hơn ít dứt khoát hơn, nhưng ít nhất bạn nên đăng nhập và gửi báo cáo cho chính mình - điều đó sẽ thúc đẩy bạn sửa chúng :) – DCoder
@DCoder cảm ơn lời khuyên tốt! Bạn có thể cho tôi biết lý do tại sao bạn nên dừng hệ thống khi E_WARNING xảy ra? –
Trong hầu hết các trường hợp, tính chính xác quan trọng hơn mức độ sẵn sàng cao, "không nhanh" là thích hợp hơn để "di chuyển bất kể cái gì". Một cảnh báo thường có nghĩa là một cái gì đó đã thực sự sai và di chuyển trên sẽ chỉ làm cho mọi việc tồi tệ hơn. Hãy xem xét câu hỏi phổ biến nhất trên trang web này - ["mysql_fetch_ mong đợi tham số ..., boolean given"] (http://stackoverflow.com/search?q=mysql+fetch+boolean+given). Nếu bạn không tạm dừng tập lệnh của mình trong cảnh báo đầu tiên, bạn sẽ nhận được một danh sách dài các cảnh báo lặp lại và thậm chí có thể làm hỏng dữ liệu khác bằng cách sử dụng kết quả của truy vấn không thành công trong quá trình xử lý tiếp theo. – DCoder