[
Lists Home |
Date Index |
Thread Index
]
> Well, in Java, an exception handler is executed in the environment it is
> declared in, rather than where it's thrown. That means that if you rethrow an
> exception from a catch block, the catching of that exception begins in the
> stack frame of the try statement, not of the original throw.
Throwing it back, so to speak - cool!
<snip good stuff/>
Thanks for taking the time to write such a detailed reply!
> > How fast can they be - if the problem is inherently more complex,
> > then implementations tend to be more complex and slower too.
>
> I think the runtime algorithm required to match the thrown exception to the
> correct handler is probably the most inherently complex part. The actual
> control transfer can be done most efficiently with a stored failure
> continuation.
The question is: at what cost does on get efficient exception handling?
Are continuation languages slower and/or more complex to implement?
> Indeed, for a specific case like stopping SAX processing, you
> could just put an 'abort' continuation in thread-local storage before
> starting the SAX parser, and just invoke it when needed in the SAX handler :-)
Now I am getting even more dissatisfied. In addition to genericity
I also want continuations in Delphi/Java/C#/C++. (it's probably possible
in C++, but I am no expert in it). ;-)
Karl
|