Caleb Cushing's Blog

Perl Core Syntax Wishlist: an Exception Stack

I have come to wish many things were part of Perl syntax that are not, and no using external modules is not enough for me. I think it’s time Perl got the features as part of the language itself (and yes I suppose I could settle for, and no I’m probably not going to write them myself, I’m not smart enough yet). The first of these is a proper exception stack. I want to be able to write:

use 5.018;
use warnings;

sub foo {
    throw Exception->new( 'message' );

try {
catch ( 'Exception' ) {
     say "$_"; # object stringifies
catch ( 'Exception::Other' ) {
     say $_->message #also has an accessor
finally {

I think we need throw, try, catch, and finally keywords. And no I don’t think it makes sense to have Object->throw. In fact I think this Original Perl 6 Syntax Proposal reads like just what we need in Perl 5. Unfortunately I think this is what we are getting in Perl 6, which IMO is not as nice.


comments powered by Disqus