Synopsis
use Data::Dumper;
use Try::Tiny;
use Types::Standard qw(Str);
try {
Str->assert_valid(undef);
}
catch {
my $exception = shift;
warn "Encountered Error: $exception";
warn Dumper($exception->explain)
if $exception->isa("Error::TypeTiny::Assertion");
};
Status
This module is covered by the Type-Tiny stability policy .
Description
When Type::Tiny and its related modules encounter an error, they throw an exception object. These exception objects inherit from Error::TypeTiny.
Constructors
-
new(%attributes)
-
Moose-style constructor function.
-
throw(%attributes)
-
Constructs an exception and passes it to
die
.Automatically populates
context
andstack_trace
if appropriate. -
throw_cb($callback, %attributes)
-
Constructs an exception and passes it to
$callback
which should be a coderef; if undef, usesdie
.Automatically populates
context
andstack_trace
if appropriate.
Attributes
-
message
-
The error message.
-
context
-
Hashref containing the package, file and line that generated the error.
-
stack_trace
-
A more complete stack trace. This feature requires Devel::StackTrace ; use the
$StackTrace
package variable to switch it on.
Methods
-
to_string
-
Returns the message, followed by the context if it is set.
Functions
-
Error::TypeTiny::croak($format, @args)
-
Functional-style shortcut to
throw
method. Takes ansprintf
-style format string and optional arguments to construct themessage
.
Overloading
-
Stringification is overloaded to call
to_string
.
Package Variables
-
%Carp::CarpInternal
-
Error::TypeTiny honours this package variable from Carp . (
%Error::TypeTiny::CarpInternal
is an alias for it.) -
$Error::TypeTiny::StackTrace
-
Boolean to toggle stack trace generation.
-
$Error::TypeTiny::LastError
-
A reference to the last exception object thrown.
Caveats
Although Error::TypeTiny objects are thrown for errors produced by Type::Tiny, that doesn't mean every time you use Type::Tiny you'll get Error::TypeTinys whenever you want.
For example, if you use a Type::Tiny type constraint in a Moose attribute, Moose will not call the constraint's
assert_valid
method (which throws an exception). Instead it will call
check
and
get_message
(which do not), and will
confess
an error message of its own. (The
$LastError
package variable may save your bacon.)
See Also
Error::TypeTiny::Assertion , Error::TypeTiny::WrongNumberOfParameters .