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.

No response to “Operadores de Control de Errores”