Error::TypeTiny

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 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.

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 an sprintf -style format string and optional arguments to construct the message .

Overloading

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 .

Try::Tiny , Try::Tiny::ByClass .