Type::Exception - 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("Type::Exception::Assertion"); };
When Type::Tiny and its related modules encounter an error, they throw an exception object. These exception objects inherit from Type::Exception.
new(%attributes)
Moose-style constructor function.
throw(%attributes)
Constructs an exception and passes it to die.
die
Automatically populates context.
context
message
The error message.
Hashref containing the package, file and line that generated the error.
to_string
Returns the message, followed by the context if it is set.
Type::Exception::croak($format, @args)
Functional-style shortcut to throw method. Takes an sprintf-style format string and optional arguments to construct the message.
throw
sprintf
Stringification is overloaded to call to_string.
%Type::Tiny::CarpInternal
Serves a similar purpose to %Carp::CarpInternal.
%Carp::CarpInternal
Although Type::Exception objects are thrown for errors produced by Type::Tiny, that doesn't mean every time you use Type::Tiny you'll get Type::Exceptions 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.
assert_valid
check
get_message
confess
Please report any bugs to http://rt.cpan.org/Dist/Display.html?Queue=Type-Tiny.
Type::Exception::Assertion, Type::Exception::WrongNumberOfParameters.
Try::Tiny, Try::Tiny::ByClass.
Toby Inkster <tobyink@cpan.org>.
This software is copyright (c) 2013 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.
To install Type::Tiny, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Type::Tiny
CPAN shell
perl -MCPAN -e shell install Type::Tiny
For more information on module installation, please visit the detailed CPAN module installation guide.