perl - protéger un programme contre les plantages ? - Perl - Programmation
Marsh Posté le 17-04-2003 à 07:29:39
Ethan_Carter a écrit : Bonjour, |
Eval est la fonction dont tu as besoin. Pour la syntaxe, perldoc -f eval
Marsh Posté le 17-04-2003 à 08:12:58
exemple avec eval :
Code :
|
Marsh Posté le 20-04-2003 à 12:58:16
Aricoh a écrit : exemple avec eval :
|
et pour eviter que le code ne soit trop lent on peut ajouter un alarm (mais je suis pas sur que ca marche sous windows):
Code :
|
Marsh Posté le 20-04-2003 à 13:41:33
je ne suis pas sûr qu'alarm fonctionne sous Windows
par contre, le package BDD-Mysql fourni des méthodes pour se prémunir contre les erreurs signalées par MySql, y compris (je crois) un truc sur les time out
Marsh Posté le 20-04-2003 à 15:28:45
ouai effectivement il je pense que ca marche pas sous windows...
ben le mieux dans ce cas, si les fonctions de dbd ne suiffisent pas (je les connais pas), c'est de forker un child et de voir ou il en est, ou un thread si tu a perl 5.8
Ou alors, si c'est pas des instructions bloquantes tu peux faire ca a coup de tk::task et de after sous tk...
Marsh Posté le 15-05-2003 à 12:45:47
Salut,
Oui, merci pour le eval {}; en fait, ça ne fonctionnait pas chez moi car j'oubliais le ; à la fin.
En fin de compte, et vue qu'il s'agit d'un CGI, j'en ai fait un javascript, c'est à dire qu'à la fin de mon programme perl, j'ai mis un print qq~document.writte()~; et que j'appelle le programme comme un javascript. Comme ça si ça plante, le reste du site continue de fonctionner.
Je suis étonné qu'une erreur de programmation fasse quand même planter la boucle eval {}; je pensais que j'aurais eu un message d'avertissement mais ce n'est pas le cas...je suppose que c'est normal ?
Marsh Posté le 17-04-2003 à 02:40:35
Bonjour,
j'ai programmé un script, en perl, avec notamment la connesion à une base de données mysql.
Le programme fonctionne trés bien.
Malgré tout, je souhaiterais qu'une portion de code (un sous-programme) soit protégée... je veux dire à perl : si ce sous-programme déconne, ou est trop lent, ou s'il y a le moindre problème, tu oublie ce sous-programme et tu passes à autre chose...sans me faire une erreur 500 ou sans abandonner le programme par un exit prématuré.
je pense qu'il faut utiliser eval. Mais je ne connais pas sa syntaxe. Et je voudrais savoir s'il n'y a pas mieux.
Merci d'avance.