Toby Inkster > Type-Tiny-0.005_05 > Type::Exception

Download:
Type-Tiny-0.005_05.tar.gz

Dependencies

Annotate this POD

Website

CPAN RT

Open  0
View/Report Bugs
Module Version: 0.005_05   Source  

NAME ^

Type::Exception - exceptions for Type::Tiny and friends

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("Type::Exception::Assertion");
   };

DESCRIPTION ^

When Type::Tiny and its related modules encounter an error, they throw an exception object. These exception objects inherit from Type::Exception.

Constructors

new(%attributes)

Moose-style constructor function.

throw(%attributes)

Constructs an exception and passes it to die.

Automatically populates context.

Attributes

message

The error message.

context

Hashref containing the package, file and line that generated the error.

Methods

to_string

Returns the message, followed by the context if it is set.

Functions

Type::Exception::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

%Type::Tiny::CarpInternal

Serves a similar purpose to %Carp::CarpInternal.

CAVEATS ^

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.

BUGS ^

Please report any bugs to http://rt.cpan.org/Dist/Display.html?Queue=Type-Tiny.

SEE ALSO ^

Type::Exception::Assertion, Type::Exception::WrongNumberOfParameters.

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

AUTHOR ^

Toby Inkster <tobyink@cpan.org>.

COPYRIGHT AND LICENCE ^

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.

DISCLAIMER OF WARRANTIES ^

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.

syntax highlighting: