Manejo de errores
Manejadores de errores
='))
date_default_timezone_set('America/Mexico_City');
// Formato para bitacora
$error = date('j/n/Y G:i:s') . '\t$errorTipo\t$errorDescripcion\t$errorArchivo\t$errorLinea\r\n';
switch($errorTipo)
{
case E_USER_NOTICE:
case E_NOTICE:
/* Avisos
Actividades que podriamos hacer aqui.
* Guardar en bitacora
* Omitir avisos
*/
break;
case E_USER_WARNING:
case E_WARNING:
/* Problemas no tan graves
Actividades que podriamos hacer aqui.
* Guardar en bitacora
* Omitir avisos
*/
break;
case E_USER_ERROR:
case E_ERROR:
/* Errores graves
Actividades que podriamos hacer aqui.
* Obtener informacion detallada del contexto
* Guardar en bitacora
* Enviar por email
* Desplegar aviso para comunicarse con el HelpDesk
*/
foreach ($errorContexto as $campo => $valor)
{
if (is_array($valor) && count($valor) > 0)
$valor = @implode(',',$campo);
$error .= "$campo = $valor\r\n";
}
$error .= '\r\n\r\n';
break;
}
echo "$error
";
}
// Definir manejador de errores
set_error_handler('manejaError');
// Provocar errores
echo '
Tipo de error E_NOTICE : Utilizar variable no definida
';
echo $noExiste;
echo '
Tipo de error E_USER_NOTICE : Utilizar variable no definida
';
if (! isset($noExiste))
trigger_error('$noExiste no esta definida', E_USER_NOTICE);
echo '
Tipo de error E_WARNING : Abrir un archivo que no existe
';
$archivo = @fopen('documento.zip','r');
if ($archivo)
echo 'Se pudo abrir el archivo';
echo '
Tipo de error E_USER_WARNING : division entre cero
';
$variable = 0;
if ($variable == 0)
trigger_error('$variable no puede ser cero', E_USER_WARNING);
else
echo 'Resultado : ' . (10/$variable);
echo '
Tipo de error E_USER_ERROR : Condicion grave detectada
';
$conectadosABaseDatos = false;
if (! $conectadosABaseDatos)
trigger_error('No se establecio conexion con la base de datos.', E_USER_ERROR);
//echo '
Tipo de error E_ERROR : ???
';
?>