Desde código, puedes usar la función
error_reporting
con las constantes anteriores para establecer el nivel de notificación en un momento determinado. Por ejemplo, si en algún lugar de tu código figura una división en la que exista la posibilidad de que el divisor sea cero, cuando esto ocurra obtendrás un mensaje de error en el navegador. Para evitarlo, puedes desactivar la notificación de errores de nivel E_WARNING
antes de la división y restaurarla a su valor normal a continuación:
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
$resultado = $dividendo / $divisor;
error_reporting(E_ALL & ~E_NOTICE);
Al usar la función error_reporting
solo controlas qué tipo de errores va a notificar PHP. A veces puede ser suficiente, pero para obtener más control sobre el proceso existe también la posibilidad de reemplazar la gestión de los mismos por la que tú definas. Es decir, puedes programar una función para que sea la que se ejecuta cada vez que se produce un error. El nombre de esa función se indica utilizando set_error_handler
y debe tener como mínimo dos parámetros obligatorios (el nivel del error y el mensaje descriptivo) y hasta otros tres opcionales con información adicional sobre el error (el nombre del fichero en que se produce, el número de línea, y un volcado del estado de las variables en ese momento).
set_error_handler("miGestorDeErrores");
$resultado = $dividendo / $divisor;
restore_error_handler();
function miGestorDeErrores($nivel, $mensaje)
{
switch($nivel) {
case E_WARNING:
echo "Error de tipo WARNING: $mensaje.<br />";
break;
default:
echo "Error de tipo no especificado: $mensaje.<br />";
}
}
La función
restore_error_handler
restaura el manejador de errores original de PHP (más concretamente, el que se estaba usando antes de la llamada a
set_error_handler
).