Cuting Errors

Ned Konz ned at bike-nomad.com
Wed Jan 8 18:12:11 UTC 2003


On Wednesday 08 January 2003 09:35 am, Stephane Ducasse wrote:
> Hi
>
> I implementing a small bot that should popup a window when pumping
> into walls (a kind of error). Moreover, when I have a loop I only
> want to have one window showing up.
>
> b1 := Bot new.
> 4 timesRepeat: [b1 go].
>
> I should get only one window and not 4.
> In fact I generated an error then caught it and I started to look
> around to see how I can walk up in the execution stack until I
> arrived to the first expression.
> Right now this is a nice idea but it does not work.
>
> Does anybody have an example on how to walk into a method context
> until a certain point?
> And kill it?
> Does somebody already have to implement similar behavior?

I'm not altogether sure what you're trying to do, but this is 
typically handled by exception handlers.

Do you mean that the 4x loop should be terminated upon the first wall 
bump? Or merely that for any number of bumps you should only have a 
single window open?

Of course, you can have handlers at various depths in the stack. And 
you can re-throw an exception as another kind if you want.

I'd install an exception handler at the topmost level (of course), as 
well as one at each level where you want separate handling.

Does "go" run in the same Process or does it fork another one?

-- 
Ned Konz
http://bike-nomad.com
GPG key ID: BEEA7EFE




More information about the Squeak-dev mailing list