Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Eliminar excepción

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico
Mensaje Mar Jun 17, 2008 5:03 am
jmdelcampo
Perlero Nuevo
Perlero Nuevo
Registrado: 24 Nov 2006
Mensajes: 21
Eliminar excepción Responder citando

Buenas tardes.

Estoy comprobando que se abre de manera correcta un fichero y en caso contrario escribo en un fichero de log.

Para abrir el fichero empleo el módulo Config::Simple y para escribir en el fichero el módulo Log::Log4perl.

Cuando ejecuto la siguiente sentencia, con el nombre del fichero mal:
Perl:
my $cfg = new Config::Simple($directorio_conf."clickstream_pruebarr.cfg") or $log->error_die("error_die");


El script escribe en el fichero de log y termina el programa pero aparece por pantalla lo siguiente:
Código:
bash-2.03$ ./parser_general_prueba.pl
Uncaught exception from user code:
        error_die at ./parser_general_prueba.pl line 33
 at ./parser_general_prueba.pl line 33


¿Como podría eliminarlo?
Saludos y gracias.
Mensaje Mar Jun 17, 2008 5:39 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4092
Ubicación: Valladolid, España
Responder citando

1. Puedes comprobar antes si existe o no el fichero de configuración:
Perl:
if ( -e "${directorio_conf}clickstream_pruebarr.cfg" ) {
    # abro el fichero...
    # ...
}
else {
    print "El fichero no existe\n";
}

2. Puedes hacer que no muera:
Perl:
my $cfg = new Config::Simple($directorio_conf."clickstream_pruebarr.cfg")
    or $log->error("El fichero de configuración no existe");


3. Puedes capturar el error con un eval():
Perl:
eval {
    my $cfg = new Config::Simple($directorio_conf."clickstream_pruebarr.cfg");
};


4. Sustituye el $log->error_die() por un die() con un "\n" al final:
Perl:
my $cfg = new Config::Simple($directorio_conf."clickstream_pruebarr.cfg")
    or die "No hay fichero\n";

5. ...
Mensaje Mar Jun 17, 2008 7:41 am
jmdelcampo
Perlero Nuevo
Perlero Nuevo
Registrado: 24 Nov 2006
Mensajes: 21
Responder citando

Gracias
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group