Luke ~ These matters are covered at some length in RFC 88 and Apocalypse 4.
http://www.avrasoft.com/perl6/rfc88.htm http://www.perl.com/pub/a/2002/01/15/apo4.html Yours, &c, Tony Olekshy Luke Palmer wrote, at 2003-11-23 11:55: > > I was reading over some code that used the MIDI module, and saw the > C<write_to_file> method. I began wondering, how does one report the > error if he feels like it, but let the module report the error if not, > in a concise way. > > What about something along the lines of a C<catch> statement modifier, > like: > > $opus.write_to_file($file) catch die "Couldn't write to $file: $!\n"; > > Which would be equivalent to: > > try { > $opus.write_to_file($file); > CATCH { > die "Couldn't write to $file: $!" > } > } > > It doesn't read quite as nicely as I'd like, but I think it could be a > very useful notation. After all, if I have to type a lot when I'm > handling errors, I'll prefer not to handle them at all. > > Which reminds me, if you throw an exception inside a CATCH block, does > it propogate outside to be caught by other CATCHes in the same block > that are lexically lower, or does it propogate outside of the enclosing > scope. That might be a little confusing... for example: > > try { > try { > do_something(); # Throws > CATCH { die "Foo" } > CATCH { die "Bar" } > } > CATCH { print "$!" } > } > > Does that print Foo or Bar? > > Luke > >