Test2:...ception(3perl) Perl Programmers Reference GuideTest2:...ception(3perl)
NAME
Test2::Tools::Exception - Test2 based tools for checking exceptions
DESCRIPTION
This is the Test2 implementation of code used to test exceptions. This
is similar to Test::Fatal, but it intentionally does much less.
SYNOPSIS
use Test2::Tools::Exception qw/dies lives/;
like(
dies { die 'xxx' },
qr/xxx/,
"Got exception"
);
ok(lives { ... }, "did not die") or note($@);
EXPORTS
All subs are exported by default.
$e = dies { ... }
This will trap any exception the codeblock throws. If no exception
is thrown the sub will return undef. If an exception is thrown it
will be returned. This function preserves $@, it will not be altered
from its value before the sub is called.
$bool = lives { ... }
This will trap any exception thrown in the codeblock. It will return
true when there is no exception, and false when there is. $@ is
preserved from before the sub is called when there is no exception.
When an exception is trapped $@ will have the exception so that you
can look at it.
$bool = try_ok { ... }
$bool = try_ok { ... } "Test Description"
This will run the code block trapping any exception. If there is no
exception a passing event will be issued. If the test fails a
failing event will be issued, and the exception will be reported as
diagnostics.
Note: This function does not preserve $@ on failure, it will be set
to the exception the codeblock throws, this is by design so that you
can obtain the exception if desired.
DIFFERENCES FROM TEST::FATAL
Test::Fatal sets $Test::Builder::Level such that failing tests inside
the exception block will report to the line where exception() is called.
I disagree with this, and think the actual line of the failing test is
more important. Ultimately, though Test::Fatal cannot be changed, people
probably already depend on that behavior.
SOURCE
The source code repository for Test2-Suite can be found at
https://github.com/Test-More/Test2-Suite/.
MAINTAINERS
Chad Granum <exodist@cpan.org>
AUTHORS
Chad Granum <exodist@cpan.org>
COPYRIGHT
Copyright 2018 Chad Granum <exodist@cpan.org>.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See http://dev.perl.org/licenses/
perl v5.40.1 2026-08-30 Test2:...ception(3perl)
Generated by dwww version 1.16 on Sat Oct 3 07:35:56 CEST 2026.