[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

catch-cancel



We ran into a strange problem the other day with catch-cancel and
throw-cancel.  Inside a catch-cancel we create a window with a button
which, when clicked, calls throw-cancel.  Unfortunately the throw wasn't
being caught by the catch we set up.

After puzzling over this for a bit, we ditched (catch-cancel...) and used
(catch :my-cancel ...).  Now it works fine.

Ok.  So catch-cancel must be doing something strange, right? 
Macroexpanding catch-cancel gives us (catch :cancel ...).  And, sure
enough, if we use :cancel as the tag for the catch then the problem
reappears.  So it seems that MCL's implementation of catch is doing
something special when the tag is :cancel.

Anyone care to explain what's happening?  Is it documented somewhere?

Thanks,

Michael Korcuska
Institute for the Learning Sciences
Northwestern University
korcuska@ils.nwu.edu