Basicos::Error - Gestión universal de errores


__top


NAME

Basicos::Error - Gestión universal de errores

__top


SYNOPSIS

Utilizándolo como clase base:

    package MyPackage;
    use base qw(Basicos::Error);
    sub dispatch {
        my $self = shift;
        my $record = shift;
    }
    
    package main;
    my $obj = MyPackage->new();
    $obj->verbose(1);
    $obj->debug_level(5);
    
    $obj->warning('Este es un aviso');

Usándolo como objeto único en una aplicación:

    use Basicos::Error;
    my $err = Basicos::Error->instance();
    $err->warning('Este es un aviso global');
    
E incluyéndolo como librería global:
    use Basicos::Error qw(:all);
    log('Este es mi mensaje de error');
   
=head1  DESCRIPTION

Este módulo proporciona varios mecanismos para registrar y tratar mensajes de error.

Las opciones son las siguientes:

Clase base

Proporciona métodos extra para gestionar una pila de errores en una clase derivada.

Objeto único

Proporciona un objeto único para toda una aplicación.

Librería de funciones

Proporciona un conjunto de funciones que gestiona una pila global de mensajes de error.

__top


Métodos genéricos

Los métodos que proporciona a cualquier nivel son los siguientes:

log

    $myobject->log( $msg, %params );
    
Registra un error con el nivel B<info>. Útil para guardar la actividad a
nivel de aplicación.

El valor predeterminado es enviar el texto a la salida estándar del proceso.

Parámetros

Texto con el mensaje de error
Parámetros para formatear en el texto (opcional)

Resultados

Ninguno especificado por el momento.

debug

    $myobject->debug( $nivel, $texto, %parametros)
    
Similar al método C<log()>, pero registra sólo si el nivel de depuración
(C<$nivel>) es menor o igual que el límite especificado en el objeto.

Los parámetros son los mismos que para log(), excepto que se incluye el nivel de depuración antes que el mensaje.

debug1 =head2 debug2 =head2 debug3 =head2 debug4 =head2 debug5 =head2 debug6 =head2 debug7 =head2 debug8 =head2 debug9

    $myobj->debug1( $texto, %parametros );
    $myobj->debug2( $texto, %parametros );
    $myobj->debug3( $texto, %parametros );
    $myobj->debug4( $texto, %parametros );
    $myobj->debug5( $texto, %parametros );
    $myobj->debug6( $texto, %parametros );
    $myobj->debug7( $texto, %parametros );
    $myobj->debug8( $texto, %parametros );
    $myobj->debug9( $texto, %parametros );

Métodos de conveniencia para generar mensajes de depuración según el nivel.

warning

    $myobject->warning( $mensaje, %parametros);

Similar al método log(), pero registrando con nivel warning y envíando el mensaje a la salida estándar de errores si no se le indica otra cosa.

Los parámetros son idénticos a log().

fatal

    $myobject->fatal( $mensaje, %parametros);

Registra un mensaje de error y finaliza la ejecución del programa mediante croak (por lo que puede interceptarse).

Los parámetros son idénticos a log(), excepto que no debería haber retorno de la llamada.

report_fatal()

Registra un mensaje de error con nivel 'fatal' y vuelve sin terminar el programa en modo alguno. Esto queda en manos de la aplicación de nivel superior.

El resto es idéntico a la función fatal().

strerr

    my $mensaje = $myobject->strerr();
    my @mensajes = $myobject->strerr();

Proporciona el último mensaje de error registrado, ó todos ellos, dependiendo de en qué contexto sea llamado.

Resultados

Último mensaje registrado (ya formateado) si se llama en contexto escalar ó todos los mensajes si se llama en contexto de lista. Un valor sin definir si no hay ningún error registrado.

has_errors

    if ($myobject->has_errors()) {
        # ha habido errores            
        1;
    }

Permite comprobar si hay errores registrados.

Resultados

Número de errores registrados. Obviamente cero si no existen.

clear_errors

    $myobject->clear_errors();

Limpia la pila de registro de errores del objeto. Útil cuando se desea comenzar una operación desde cero.

No admite parámetros y no retorna nada.

__top


Objetos

Esto sólo se aplica cuando se pretende usar la característica de objeto único de gestión de errores para una aplicación.

instance

    use Basicos::Error;
    my $err = Basicos::Error->instance();
    $err->warning(' ... ');

Retorna una instancia a un objeto global de la clase, y sólo lo crea la primera vez que se llama en alguna parte de la aplicación.

Parámetros

Ninguno

Resultados

Referencia al mismo objeto de siempre.

initialize

    $obj->initialize();

Método de inicialización (envoltorio a _init_object()).

dispatch

    $obj->dispatch( $record );

Muestra el registro por la salida estándar.

msg

    $obj->msg( @args );

Wrapper como método para la función _msgx().

__top


BUGS

__top


AUTHOR

(c) Copyright Víctor Moral <victor@taquiones.net>

__top


SEE ALSO

__top


LICENSE

Este programa está bajo licencia GPL (ver perlgpl) y puede distribuirse y/ó modificarse bajo los términos en ella descritos.

__top

 Basicos::Error - Gestión universal de errores