Blog Aula Formativa

Manejo de errores en PHP

Manejo de errores en PHP

En este tutorial vamos a aprender sobre el manejo de errores en PHP, es decir, el manejo correcto de los diferentes tipos de errores que existen en PHP y cómo ocultarlos o mostrarlos. Para lograr estos objetivos, estaremos utilizando el archivo de configuración php.ini, por lo cual es importante saber dónde se encuentra y tenerlo abierto a lo largo de este tutorial.

En PHP existen diferentes tipos de mensajes y errores cuando algo falla en el código. Para ponerlo de manera simple, existen hasta 3 niveles de mensajes en tiempo de ejecución que pueden aparecer. Estos son los siguientes:

Realmente existen más categorías en PHP pero estas son las más comunes y en las que nos estaremos concentrando. Cada una de estas categorías puede ocultarse o mostrarse, es decir, podemos elegir que sólo se muestren errores de tipo notificación y que las advertencias y errores se oculten. Podemos ocultar o mostrar cualquier combinación de estas 3 categorías mediante el archivo php.ini.

Lo primero que debemos hacer es abrir nuestro archivo de configuración php.ini y buscar la siguiente cadena:

error_reporting

Esta opción es la que nos permitirá definir qué errores queremos mostrar en nuesto servidor. Los valores que podemos poner se encuentran unas líneas más arriba que la cadena que hemos encontrado en el mismo archivo php.ini. Entre estos valores, los que podemos reconocer son los siguientes:

Debemos tener en cuenta que se pueden realizar combinaciones de estos valores con operadores lógicos & (y) y ~ (negación). Es decir, si queremos mostrar errores de tipo E_NOTICE y de tipo E_WARNING el valor que deberíamos poner es el siguiente:

E_NOTICE & E_WARNING

Si no indicamos de manera explícita qué tipo de error queremos mostrar, no será mostrado. Si quieremos mostrar todos los errores excepto las notificaciones, sería de la siguiente manera:

E_ALL & ~E_NOTICE

Existen diversas combinaciones y podemos configurarlo de acuerdo a nuestras necesidades. En este caso, dejaré la configuración para que se muestren todos los errores excepto los E_NOTICE y la línea quedará de la siguiente forma:

error_reporting = E_ALL & ~E_NOTICE