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

Try::Tiny::NoDie - minimal try/catch with local-disabling of SIGDIE

SYNOPSIS

Preserves all of Try::Tiny's semantics to expect and handle exceptions but adds a try_no_die keyword which behaves exactly just like try but with a locally-disabled __DIE__ hook.

As such:

try_no_die {
  die "foo";
};

is exactly equivalent to:

try {
  local $SIG{__DIE__} = "IGNORE";
  die "foo";
};

DESCRIPTION

This module is primarily designed for developer convenience, for cases wherein the desired behavior within the scope of the error throwing code is a nullified __DIE__ handler.

FAQ

Why not add an option to disable __DIE__ on Try::Tiny?

Yes, that's possible.

However, as Try::Tiny aims to preserve compatibility as one of its design objective, Try::Tiny::NoDie holds a different opinion and offers this option to the developer.

Why not override the default behavior of try instead?

As disabling __DIE__ within the scope of the error throwing code is a rather specific corner case, this poses a potential risk when the developer expects otherwise if the same keyword was to be overriden.

Due to this, a separate try_no_die keyword has been added instead.

AUTHOR

Arnold Tan Casis <atancasis@cpan.org>

COPYRIGHT

Copyright 2016- Arnold Tan Casis

LICENSE

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

SEE ALSO

Try::Tiny