Error::TypeTiny - exceptions for Type::Tiny and friends
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");
};
This module is covered by the
Type-Tiny stability policy.
When Type::Tiny and its related modules encounter an error, they throw an
exception object. These exception objects inherit from Error::TypeTiny.
- new(%attributes)
-
Moose-style constructor function.
- throw(%attributes)
-
Constructs an exception and passes it to
die .
Automatically populates context and stack_trace if appropriate.
- 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 the Devel::StackTrace manpage;
use the
$StackTrace package variable to switch it on.
- to_string
-
Returns the message, followed by the context if it is set.
- Error::TypeTiny::croak($format, @args)
-
Functional-style shortcut to
throw method. Takes an sprintf -style
format string and optional arguments to construct the message .
-
Stringification is overloaded to call
to_string .
- %Error::TypeTiny::CarpInternal
-
Serves a similar purpose to
%Carp::CarpInternal .
- $Error::TypeTiny::StackTrace
-
Boolean to toggle stack trace generation.
- $Error::TypeTiny::LastError
-
A reference to the last exception object thrown.
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.)
Please report any bugs to
http://rt.cpan.org/Dist/Display.html.
the Error::TypeTiny::Assertion manpage,
the Error::TypeTiny::WrongNumberOfParameters manpage.
the Try::Tiny manpage, the Try::Tiny::ByClass manpage.
Toby Inkster <tobyink@cpan.org>.
This software is copyright (c) 2013-2014, 2017-2019 by Toby Inkster.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|