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

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>

Stephen Thirlwall

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.