Machine should provide support for continuing execution after exception has been handled.
Example situation:
an exception is thrown, with its type specifying what has gone wrong,
handler block is reached (possibly up the stack),
the environment is restored to the point of exception,
handler block fixes the environment,
execution continues,
The simplest solution would involve adding some more instructions:
restore, for restoring the environment from the point when exception has been thrown (otherwise, the frames from the throw-point up to the catch-point are lost),
retry, that would leave the block and try to reexecute the instruction that threw the exception,
continue, that would leave the handler block and continue execution with the instruction just after the one that threw the exception,
Machine should provide support for continuing execution after exception has been handled.
Example situation:
The simplest solution would involve adding some more instructions:
restore
, for restoring the environment from the point when exception has been thrown (otherwise, the frames from the throw-point up to the catch-point are lost),retry
, that would leave the block and try to reexecute the instruction that threw the exception,continue
, that would leave the handler block and continue execution with the instruction just after the one that threw the exception,NOTE: this is only a first draft of the idea.