Durante el desarrollo de un sistema web php, configurar E_ALL | E_STRICT
a error_reporting y encargarse de todo tipo de errores, incluidos los errores de notificación, es una buena práctica.¿Qué tipos de errores deberían detener el sistema en el sistema web php lanzado?
Pero en el sistema liberado, ¿debo detener el sistema cuando se produce un error de aviso?
¿O debería detener el sistema solo cuando ocurrió E_ERROR e ignorar todos los otros errores como E_WARNING, E_NOTICE o E_STRICT?
¿Qué tipos de errores debo manejar en mi controlador de error personalizado y detener (salir) del sistema?
Las advertencias definitivamente deben detener el sistema (pero no deje los controladores originales de error/excepción, escriba uno propio que no revele ninguna información de error). Los niveles de error menores son menos definitivos, pero al menos debe registrarlos y enviarse los informes a usted mismo, lo que lo motivará a solucionarlos :) – DCoder
@DCoder ¡gracias por los buenos consejos! ¿Podría decirme por qué debería detener el sistema cuando se produjo E_WARNING? –
En la mayoría de los casos en que la corrección es más importante que la alta disponibilidad, es preferible "fallar rápido" a "seguir adelante sin importar qué". Una advertencia generalmente significa que algo salió mal y seguir adelante solo empeorará las cosas. Considere la pregunta más común en este sitio: ["mysql_fetch_ espera el parámetro ..., boolean given"] (http://stackoverflow.com/search?q=mysql+fetch+boolean+given). Si no detienes tu script en la primera advertencia, obtendrás una larga lista de advertencias repetitivas y posiblemente incluso desordene otros datos al usar los resultados de la consulta fallida en un procesamiento posterior. – DCoder