Error::TypeTiny - exceptions for Type::Tiny and friends
use feature 'try';
use Data::Dumper;
use Types::Standard qw( Str );
try {
Str->assert_valid( undef );
}
catch ( $exception ) {
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.
throw_cb($callback, %attributes)Constructs an exception and passes it to $callback which should be a coderef; if undef, uses die.
Automatically populates context and stack_trace if appropriate.
messageThe error message.
contextHashref containing the package, file and line that generated the error.
stack_traceA more complete stack trace. This feature requires Devel::StackTrace; use the $StackTrace package variable to switch it on.
to_stringReturns 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.
%Carp::CarpInternalError::TypeTiny honours this package variable from Carp. ( %Error::TypeTiny::CarpInternal is an alias for it.)
$Error::TypeTiny::StackTraceBoolean to toggle stack trace generation.
$Error::TypeTiny::LastErrorA 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 https://github.com/tobyink/p5-type-tiny/issues.
Error::TypeTiny::Assertion, Error::TypeTiny::WrongNumberOfParameters.
Try::Tiny, Try::Tiny::ByClass.
Toby Inkster <tobyink@cpan.org>.
This software is copyright (c) 2013-2014, 2017-2025 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.