[Pharo-dev] Unwind error during termination

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Thu Oct 24 18:26:18 EDT 2013


Hard to debug this kind of code :(
This is reproducible on Squeak wiht on:do:, so on:fork: bizareness apart,
this is another flaw in exception handling, along with wrong handler for
nested exception (testHandlerFromAction below), unless it's an avatar.

Still, I do not see how you get the errorSubscriptBound:...
In Squeak that would mean that you sent #handleSignal: to a not
isHandlerContext ContextPart...
I never saw this, but if Eliot says so...



ExceptionTests>>testHandlerFromAction
    "A test ensuring that nested exceptions work as expected."

    | result |
    result := [
        [
            [self error: 'trigger error'] on: ZeroDivide do: [ :ex |
'inner' ]
        ] on: Error do: [ :ex | 3 / 0 ]
    ] on: ZeroDivide do: [ :ex | 'outer' ].
    self assert: 'outer' equals: result description: 'Incorrect handler'.



2013/10/24 Igor Stasenko <siguctua at gmail.com>

>
> ok, it seems i found how to reproduce the situation with following:
>
> [  [ 1/0 ] ensure: [ nil foo ] ] on: Error fork: [ :ex | 1halt ]
>
> you will get halt, and if you close the debugger , it will throw unwind
> error.
> (while instead it should throw DNU)
>
>
> --
> Best regards,
> Igor Stasenko.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20131025/bffa2163/attachment-0002.html>


More information about the Pharo-dev mailing list