The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;

use Moose;
use Benchmark qw( timethese );

use Exception::Class (
    'Ex1',
    Ex2 => { isa => 'Ex1' },
);

timethese(
    10_000, {
        'one arg' => sub {
            eval { Ex1->throw('foo') };
        },
        'named error arg' => sub {
            eval { Ex1->throw( error => 'foo' ) };
        },
        'several args' => sub {
            eval { Ex1->throw( message => 'foo', ignore_class => 'Bar' ) };
        },
    }
);