I was just reading about the new async/await keywords in C# 5.0, and while
this has no particular relevance to PHP as such, it got me thinking about
this idea...

What if you could resume execution after an exception was thrown?

Fictive example:

function test()
{
  echo "Begin Test!\n";

  throw new Interrupt();

  echo "Execution resumed!";
}

try
{
  test();
}
catch (Interrupt $e)
{
  echo "Execution interrupted.\n";
  resume;
}

The output of this would be:

Begin Test!
Execution interrupted.
Execution resumed!

In other words, Interrupt is a new type of Exception, from which you can
recover, using the new resume keyword.

Taking this one step further, imagine it were also possible to serialize()
an Interrupt - and resume it at a later time. This would open up entirely
new possibilities for (AJAX) web-application frameworks, which would be
able to suspend execution, serialize the script state, return a response,
wait for further interaction from the user, and then resume execution.

I'm sure there are lots of problems with this idea, and perhaps it's not a
good fit for PHP at all, but I figured it couldn't harm to put the idea out
there anyway :-)

Any thoughts?

Reply via email to