Exception::Class & Try::Tiny 

use Exception::Class ( 'My::Exception' );
use Scalar::Util qw( blessed );
use Try::Tiny;

try {
    might_throw();
}
catch {
    if(blessed $_ && $_->isa('My::Exception')) {
        handle_it();
    }
    else {
        die $_;
    }
};