Clasificación de los errores en PHP 33f1z
Los errores en PHP se clasifican en tres grandes grupos: Fatal error, Warning y Notice.
Fatal error 6ty54
Los errores tipo Fatal error (error fatal o crítico) son errores que pueden comprometer seriamente el funcionamiento del programa y por ello, para prevenir males mayores, se aborta la ejecución y el programa deja de funcionar por completo. Es el nivel de error más alto.
Ejemplos comunes de este tipo de error son intentar ejecutar una función que no ha sido definida (Fatal error undefined function) o intentar inicializar un objecto de una clase que no existe (Fatal error class not found). Por ejemplo:
<?php
function unaFuncion() {
return true;
}
//La siguiente funcion no existe y se genera un error Fatal
otraFuncion();
?>
Por defecto, cualquier instalación de PHP tiene activado el reporte de errores fatales y, dada su importancia, se recomienda tenerlos activados incluso en servidores en producción.Dependiendo de dónde se genere el error, se pueden distinguir varios tipos de Fatal error que se identifican con las siguientes constantes:
- E_ERROR: error crítico generado en tiempo de ejecución. Son generados por el motor intérprete de PHP.
- E_CORE_ERROR: error crítico que ocurre durante el arranque inicial de PHP. Son generados por el core de PHP.
- E_COMPILE_ERROR: error crítico que ocurre en tiempo de compilación y son generados por el Zend Engine.
- E__ERROR: error crítico generado por la función trigger_error(), utilizado por el desarrollador para generar errores fatales personalizados.
- E_RECOVERABLE_ERROR: es un error crítico recuperable, un error potencialmente peligroso pero que no deja al programa en un estado inestable. Lo importante de este tipo de errores es que pueden ser capturados si se ha definido un gestor de errores (set_error_handler()) y aquí el programador puede decidir que hacer, si seguir con la ejecución o no. Si no se ha definido un gestor de errores, los E_RECOVERABLE_ERROR se tratarán como E_ERROR y se abortará el programa.
Warning 264m2v
Los errores tipo Warnings (Advertencia) son errores menos severos que los errores fatales y no suponen la terminación del programa. Esto no quiere decir que no puedan ser graves. El programa sigue su curso pero puede no funcionar correctamente o ser la causa de que más adelante se produzcan erorres más graves.
Por ejemplo, intentar incluir un archivo mediante include() con una ruta errónea:
<?php
//Genera un error tipo Warning
include('/ruta/hacia/un/archivo/inexistente.php');
?>
Si se utiliza require() en lugar de include(), el error generado es tipo Fatal:
<?php
//Genera un error tipo Fatal error
require('/ruta/hacia/un/archivo/inexistente.php');
?>
Una instalación PHP estándar tiene activado los errores tipo Warning y deberían estar activados siempre en entornos de desarrollo.Al igual que los errores Fatales, los Warnings se pueden clasificar en función de dónde son generados:
- E_WARNING: generados en tiempo de ejecución.
- E_CORE_WARNING: generados por el núcleo de PHP durante el arranque inicial.
- E_COMPILE_WARNING: generados en tiempo de compilación por Zend Engine.
- E__WARNING: generado por la función trigger_error().
Notice 5094a
Los errores tipo Notice (Aviso) son los errores de menor nivel de gravedad. Señalan la presencia de un posible error pero que podrían ocurrir también de forma normal en la ejecución del programa. La aparición de errores Notice no supone la terminación del programa y, aunque no suelen ser fuente de problemas serios, pueden hacer que el programa no funcione exactamente como deseamos.
Puede que el error Notice más común sea la referencia a variables no definidas:
<?php
$name = "Manolo";
//$nombre es una variable que no ha sido definida antes de su uso. Su valor es NULL.
echo 'Tu nombre es ' . $nombre;
?>
Dada su relativa baja gravedad, al instalar PHP los errores tipo Notice vienen desactivados por defecto pero se recomienda activarlos durante el desarrollo pues, aunque sean leves, no dejan de ser errores que pueden hacer que nuestro programa no funcione exactamente como habíamos diseñado o que no sea compatible con futuras versiones de PHP.Según dónde se generen, los errores Notice pueden ser:
- E_NOTICE: generados en tiempo de ejecución.
- E__NOTICE: generados por la función trigger_error().
- E_STRICT: si se habilita, PHP generará avisos en tiempo de ejecución sugiriendo cambios para que el código se ajuste de forma estricta a los estándares PHP, lo que aumentará la compatibilidad del código con futuras versiones de PHP.
- E_DEPRECATED: si se habilita, PHP generará avisos en tiempo de ejecución indicando partes de código utilizado que dejará de funcionar en futuras versiones de PHP.
Parse 6g1a16
Los erres tipo Parse (Analizar) son errores del analizador del núcleo de PHP y suponen la terminación del programa.
Los errores del analizador más comunes son errores de sintaxis. Por ejemplo:
<?php
//Falta el ")" en la definición de la función, generará un Parse syntax error
function myFunction( {
$name = "Manolo";
return $name;
}
?>
Más información 4o4f6k
Manejo y registro de errores
Constantes predefinidas de error