exceptions with nested windows messages.

  • Thread starter Thread starter Andy Fish
  • Start date Start date
A

Andy Fish

Hi,

I have a form with 2 buttons: button A starts a long running process which
periodically calls Application.DoEvents() and button B which stops the
process by throwing a special exception trapped by the processs itself.

This works fine in the debugger, but running outside of the debugger causes
an untrapped exception.

At the time of the exeption, the call stack looks something like this (with
lots of stuff removed for the sake of simplicity):

Throw new StopProcessException()
ButtonB_Click()
DoEvents()
RunProcess()
ButtonA_Click()

however, when running outside of the debugger, the call stack reported by
the exception doesn't contain the bottom stuff, only the buttonB_Click is
shown. I guess this is because the debugger is emulating the windows message
loop causing different behaviour.

Is there any way to allow an exception raised inside a button click to
propagate back up to the thing that called DoEvents() ??

TIA

Andy
 
FWIW here's my solution:

instead of raising StopProcessException inside the click event, just use the
click event to set an instance variable 'interrupted=true'

then whenever calling DoEvents, check interrupted immediately after, and
throw the exception if true
 
Back
Top