The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Exception::Simple - simple exception class

SYNOPSIS

use Exception::Simple;
use Try::Tiny; #or just use eval {}, it's all good

try{
    Exception::Simple->throw( 'oh noes!' );
} catch {
    warn $_; 
    warn $_->error;
};

my $data = { 
    'foo' => 'bar',
    'fibble' => [qw/wibble bibble/],
};
try{
    Exception::Simple->throw( 
        'error' => 'oh noes!',
        'data' => $data,
    );  
} catch {
    warn $_; 
    warn $_->error;

    warn $_->data->{'foo'};
};

DESCRIPTION

pretty simple exception class. auto creates argument accessors.

simple, lightweight and extensible are this modules goals.

METHODS

throw

#with just one argument $@->error is set
Exception::Simple->throw( 'error message' );
# $@ stringifies to $@->error

#or set multiple arguments (creates accessors)
Exception::Simple->throw( 
    error => 'error message',
    data => 'cutom atrribute',
);
# warn $@->data or something

rethrow

say you catch an error, but then you want to uncatch it

use Try::Tiny;

try{
    Exception:Simple->throw( 'foobar' );
} catch {
    if ( $_ eq 'foobar' ){
    #not our error, rethrow
        $_->rethrow; 
    }
};

error

accessor for error, if its been set

SUPPORT

Bugs should always be submitted via the CPAN bug tracker

For other issues, contact the maintainer

AUTHORS

n0body <n0body@thisaintnews.com>

SEE ALSO

http://thisaintnews.com, Try::Tiny

LICENSE

Copyright (C) 2011 by n0body http://thisaintnews.com/

This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself.