Skip to content

tarao/perl5-Plack-Middleware-StackTrace-RethrowFriendly

Repository files navigation

Build Status

NAME

Plack::Middleware::StackTrace::RethrowFriendly - Display the original stack trace for rethrown errors

SYNOPSIS

use Plack::Builder;
builder {
    enable "StackTrace::RethrowFriendly";
    $app;
};

DESCRIPTION

This middleware is the same as Plack::Middleware::StackTrace except that additional information for rethrown errors are available for HTML stack trace.

If you catch (eval or try-catch for example) an error and rethrow (die or croak for example) it, all the errors including rethrown ones are visible through the throwing point selector at the top of the HTML.

For example, consider the following code.

sub fail {
    die 'foo';
}

sub another {
    fail();
}

builder {
    enable 'StackTrace';

    sub {
        eval { fail() }; # (1)
        another();       # (2)

        return [ 200, [ 'Content-Type' => 'text/plain' ], [ 'OK' ] ];
    };
};

Plack::Middleware::StackTrace blames (1) since it is the first place where 'foo' is raised. This behavior may be misleading if the real culprit was something done in another.

Plack::Middleware::StackTrace::RethrowFriendly displays stack traces of both (1) and (2) in each page and (1) is selected by default.

SEE ALSO

Plack::Middleware::StackTrace

LICENSE

Copyright (C) TOYAMA Nao and INA Lintaro

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

AUTHOR

TOYAMA Nao [email protected]

INA Lintaro [email protected]

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages