• Publicidad

Control de errores en Perl

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Control de errores en Perl

Notapor xperlero » 2007-06-05 13:20 @597

Estoy haciendo un motor de cálculos que llama a funciones dinámicamente y estas pueden fallar por uno u otro motivo y rompen el flujo del programa. ¿Alguien sabe como controlar los errores en Perl? Ya hice un intento con @eval que en principio está bien, pero necesito tener más control ya que pueden ocurrir errores por que la función no está, por que algún parámetro no existe, o cualquier otro error.
xperlero
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2007-06-05 13:04 @586

Publicidad

Notapor explorer » 2007-06-05 15:06 @671

Bienvenido a los foros de Perl en Español.

eval es la forma normal para capturar ese tipo de errores. Sólo tienes que rodear las sentencias problemáticas. Y luego comprobar el resultado comprobando el valor de la variable @! y decidir en consecuencia.

De todas formas... los errores que comentas me parecen 'demasiado' fuertes como para pensar que los programas están bien hechos.

En CPAN hay algunos módulos que ayudan en esto, como por ejemplo overload::eval, que permite personalizar el funcionamiento de eval().

En el libro Perl Hacks, el truco #91 indica que una buena forma de hacer lo que quieres es con el módulo Fatal, que hace que un programa termine si las funciones que indiques provocan algún error.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Control de errores en Perl

Notapor xperlero » 2007-06-06 03:53 @203

Gracias Explorer, me has dado buenas ideas, voy a revisarlas a ver como me va.

El programa estamos intentando hacerlo lo mejor que se pueda, tanto así que queremos asegurarnos que no caiga con "nada" -utópico, de pronto-, es un motor de cálculos bancario, ya podrás darte idea de por qué no debe caer, el cual en cierto punto llama a funciones que han sido parametrizadas y configuradas por usuarios no informáticos y quiero controlar al máximo las posibles caídas.
xperlero
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2007-06-05 13:04 @586

Notapor explorer » 2007-06-06 05:10 @257

No estaría demás aplicar entonces algunas ideas de monitorización de procesos, de forma ajena al propio motor de cálculos.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Avanzado

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados