Operadores de Control de Errores

Operadores de Control de Errores

PHP ofrece soporte para un operador de control de errores: el signo de arroba (@). Cuando es colocado al comienzo de una expresi贸n en PHP, cualquier mensaje de error que pudiera generarse a causa de esa expresi贸n ser谩 ignorado.

Si la caracter铆stica track_errors est谩 habilitada, cualquier mensaje de error generado por la expresi贸n ser谩 almacenado en la variable $php_errormsg. La variable ser谩 sobrescrita en cada instancia de error, as铆 que realice sus chequeos de forma temprana si quiere usarla.

<?php
/* Error intencional de archivo */
$mi_archivo = @file ('archivo_que_no_existe') or
    die (
"La apertura de archivo ha fallado: el error fue '$php_errormsg'");

// esto funciona con cualquier expresion, no solo con funciones:
$valor = @$cache[$llave];
// no producira una anotacion si el indice $llave no existe.

?>

Nota: El operador @ trabaja s贸lo sobre expresiones. Una simple regla de oro es: si usted puede tomar el valor de algo, entonces puede usar el operador @ sobre ese algo. Por ejemplo, puede usarlo al inicio de variables, llamadas a funciones y sencencias include(), constantes, y as铆 sucesivamente. No puede usarlo sobre definiciones de funci贸n o clase, ni sobre estructuras condicionales como if y foreach, y as铆 sucesivamente.

Vea tambi茅n error_reporting() y la secci贸n del manual sobre funciones de Gesti贸n de Errores y Registros.

Aviso

En la actualidad, el operador de prefijo "@" para control de errores deshabilitar谩 incluso el reporte de errores en casos de fallos cr铆ticos que terminar谩n la ejecuci贸n del script. Entre otras cosas, esto quiere decir que si usa "@" para eliminar los errores de una cierta funci贸n, y 茅sta no se encuentra disponible o ha sido escrita de forma incorrecta, el script se detendr谩 en ese punto sin dar indicaci贸n alguna del motivo.