Dan Sugalski <[EMAIL PROTECTED]> wrote:

>      pushmark 12
>      popmark 12

>     pushaction Psub

I've now implemented these bits. I hope it's correct, specifically, if a
return continuation in only captured, the action handler is not run.
See t/pmc/exceptions.t

Still missing is the throw opcode. Or better that exists, just exception
creation and the extended attributes like language is missing.

I'm still voting for a more object-ish exception constructor to better
accomodate HLLs different exception usage.

E.g.

  e = new PyKeyError      # presumably a constant singleton
  throw e

That ought to be enough for heavily used exception and for Perl6
control exceptions.

OTOH

  e = new Exception
  setattribute e, "message", Pmsg
  setattribute e, "language", PLang
  ...
  throw e

construct a full exception object.

Currently it is:

  e["_message"] = "foo"
  e["_error"]
  e["_severity"]
  ...

And it could be even something like:

  cl = getclass "Exception"
  e = cl."instantiate"("foo", "Perl", .error, .severity, ...)

leo

Reply via email to