Kroc a écrit :
> On 5 juil, 16:09, Merwin <merwin....@gmail.com> wrote:
>
>> Mais comment cather quelque chose qui vient du background, exécuté via
>> fileevent, ou alors after...
>
> On fait pareil : on met tout ça dans un catch. Ceci dit, au delà d'un
> certain point, il est plus simple de redéfinir bgerror, puisqu'on peut
> le faire en Tcl (bien que ça ne soit pas recommandé, paraît-il).
>
> Un truc dans ce genre devrait te permettre de corriger tes problèmes
> sans bloquer ton script :
>
> proc bgerror {msg} {
> set fout [open error.log a]
> puts $fout "[clock format [clock second] - erreur : $message"
> }
>
> --
> David
C'est justement ce que j'ai fais, mais comme je vous expliquait l'erreur
faisait quand même planté le script (enfin il semble, puisque après ça
je ne reçois plus aucune données via socket, ni rien).
Pour vous expliquez exactement comme ça se passe, j'ai un script, qui
possède des modules, ces modules sont exécutés dans un interpreteur
différent.
A chaque fois que j'apelle une procédure d'un module je fais bien sur un
catch, ce qui ne pose donc aucun problème, par contre, imaginons qu'un
module utilise [after], s'il il y a une erreur, ça va faire planter
l'intepréteur, et par la même occasion condamner tous les modules qui
était dedans.
Comme dis plus haut, même si j'utilise [bgerror] OU [interp bgerror], il
semble que l'erreur ne soient pas interceptée.
--
Thibaut