On Mon, Aug 14, 2000 at 04:09:41AM -0600, Tony Olekshy wrote:
> $@->CanFoo is an example of semantics that determines whether or
> not the exception is caught; stringification may be an example
> of semantics that comes into play when an exception is caught.
Ah, this is why I started asking I guess. Some people were proposing
a try/catch like the following:
try { }
catch SomeException { }
catch SomeOtherException { }
finally { }
which seems to only catch exceptions based on name. Which implies to
me that, for exceptions to have useful semantics, they'd have to be
rethrown after they're caught. I like the following, but it would
also seem that exceptions that aren't handled here would have to be
rethrown so that an upstream catch could handle them.
try { }
catch { # ALL exceptions
switch ($@) {
case ^_->name eq 'IO' { ... }
case ^_->canFoo { ... }
throw $@; # No cases matched, rethrow
}
}
finally { }
-Scott
--
Jonathan Scott Duff
[EMAIL PROTECTED]