[gambit-list] finally blocks

Marc Feeley feeley at iro.umontreal.ca
Sun Jan 28 22:25:30 EST 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 27-Jan-07, at 1:36 PM, Phil Dawes wrote:

> Hi Gambit List,
>
> I'd like to have some functionality in gambit similar to 'finally'
> blocks in java/python where a block of code is always executed
> regardless of any exceptions thrown.
>
> I'm currently using an exception handler that catches the exception  
> and
> re-raises it after doing the cleanup stuff, but this loses the  
> original
> 'where the exception was raised from' metadata.

I'm not sure I understand what you mean by that (i.e. 'where the  
exception was raised from' metadata).

When an exception is raised the continuation of the exception handler  
is identical to the continuation of the primitive that raised the  
exception.  On the other hand, when you use with-exception-catcher or  
dynamic-wind, the continuation will be unwound, so you lose the  
continuation of the primitive.  So, if you want to preserve this  
information, you could use call/cc (or ##continuation-capture) to  
save the information for later use.

Marc

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (Darwin)

iD8DBQFFvWkq//V9Zc2T/v4RAre1AJ9VzzafTQMdULKgLtRZIAadj9D9RwCdGyLw
/MLFr6D6n0no71JPxAKnQ+U=
=Y8hK
-----END PGP SIGNATURE-----



More information about the Gambit-list mailing list