Thanks Richard. That helped me figure it out. I ended up doing: [ [self testCondition] whileTrue:[ self doSomeStuff] ] on: MyNotification do:[:ex | |presenter | presenter:=MyPresenter forException: ex . presenter openWithSpec. Smalltalk ui theme runModal: presenter window] Which does what I want Richard Sargent wrote
Paul, I'm going by memory and not Pharo specific.
I believe the default handling of the end of the exception block is implicitly equivalent to ex return: nil.
So, to get further handling of the exception, you need to #pass it or otherwise resignal it. Then the development environment will catch and handle the unhandled exception.
On Wed, Nov 20, 2019, 20:53 PAUL DEBRUICKER <
pdebruic@
> wrote:
Hi -
I have a subclass of ComposablePresenter (lets call it MyPresenter) that seems to work how I want. When doing some processing I'd like to open MyPresenter when an exception occurs and pass it the exception e.g.
[ [self testCondition] whileTrue:[ self doSomeStuff] ] on: MyNotification do:[:ex | self openMyPresenterWith: ex]
But that just results in lots of MyPresenter windows opening while the execution of the #whileTrue: loop runs its course.
How do I pause the loop so I can use the MyPresenter window to modify and fix the condition that raised the MyNotification?
The MyPresenter window just edits the contents of a couple Dictionaries so isn't too tricky but it isn't really as easy to do in a debugger as it is clicking a radio button and a "do it" button.
Thanks
-- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html