5 min de lectura

Los errores son una parte integral de cada lenguaje de programación, a pesar de que la mayoría de las veces, los programadores prefieren no tener que lidiar con ellos.

PHP tiene excelentes facilidades para manejar errores que proporcionan un excelente nivel de control sobre cómo se generan errores, como manejarlos y reportearlos.

PHP5 introduce manejo de errores por medio de objetos, por esta ocasión solo veremos el manejo de errores en programación estructurada.

Niveles de errores

Compile-time errors Errores detectados por el analizador mientras esta compilando el script. No puede ser atrapado dentro del propio script
Fatal errors Errores que “cuelgan” la ejecución de un script. No pueden ser atrapados
Recoverable errors Errores que representan fallas significativas,pero que pueden ser manejados de manera segura
Warnings Errores recuperables que indican una falla en tiempo de ejecución. No detienen la ejecución del script.
Notice Indican que se produjo una condición de error, pero no es necesariamente importante. No detienen la ejecución del script.

 

Como se puede ver, no siempre es posible para un script detectar un fallo y recuperarse de el.

Exceptuando los errores fatales y de compilación, tu script puede por lo menos tener en cuenta que hay un fallo, dandote la posibilidad de manejarlo.

Existen varias directivas de configuración en el archivo php.ini (en linux: /etc/php5/apache2/) que permiten ajustar cómo y qué errores se reportan. Las directivas más importantes son:
error_reporting, display_errors y log_errors

Reporte de errores

La directiva error_reporting determina que niveles de errores son reportados por PHP. La tabla de los niveles de error la pude encontrar aquí

Error reporting también puede se cambiado dinámicamente a través de un script por medio de la función error_reporting()

La función error_reporting(); es la encargada de establecer el nivel de errores que será mostrado, siendo el 0 el nivel en el que ningún error es mostrado al usuario. Existen distintos tipos de variables que pueden indicar el nivel de errores y que por tanto pueden ser pasados como argumento a dicha función. Los puedes ver en la siguiente tabla, con links al manual oficial de PHP.

VALOR CONSTANTE
1 E_ERROR
2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
32 E_CORE_WARNING
64 E_COMPILE_ERROR
128 E_COMPILE_WARNING
256 E_USER_ERROR
512 E_USER_WARNING
1024 E_USER_NOTICE
2047 E_ALL
2048 E_STRICT

Mostrar errores

Los directivas display_errors y log_errors se pueden utilizar para determinar cómo se informará de los errores. Si display_errors está encendido, los errores se generan a la salida del script, generalmente hablando, esto no es deseable en un entorno de producción, ya que todo el mundo será capaz de ver los errores de los scripts. En esas circunstancias, en su lugar se desea activar log_errors, lo que hace que los errores se escriban en el registro de errores del servidor web.

Manejando los errores

Los scripts deben ser capaces de recuperarse de un error incluso si es sólo para avisar al usuario de que ha ocurrido un error.
El manejo de errores en PHP es muy fácil. Se puede declarar un función para atrapar los errores la cual será llamada por PHP cuando se produce un error al llamar al set_error_handler()

¿Te gustó este artículo?

Si te gustó este artículo, te ha servido o aprendiste algo nuevo; compártelo en tus redes sociales o invítame un cafe.

Líder técnico en equipos de desarrollo de software. Profesor de Desarrollo Web en la Universidad de Guadalajara. Emprendedora. Fundadora y CTO de CORB.mx. Ponente y tallerista. Colaboradora en proyectos de software libre y Open Source. Comprometida con la comunidad y la industria de la tecnología. Enfocada en el empoderamiento de las mujeres.

Deja tus comentarios

This site uses Akismet to reduce spam. Learn how your comment data is processed.