MooseX::Method::Exception - Exception class for MooseX::Method


MooseX-Method documentation Contained in the MooseX-Method distribution.

Index


Code Index:

NAME

Top

MooseX::Method::Exception - Exception class for MooseX::Method

WARNING

Top

This API is unstable, it may change at any time. This should not affect ordinary MooseX::Method usage.

SYNOPSIS

Top

  eval {
    MooseX::Method::Exception->throw ("OH NOES!");
  };

  if ($@) {
    if (blessed $@ && $@->isa ('MooseX::Method::Exception') {
      # Our exception
    } else {
      # Something else
    }
  }

DESCRIPTION

Top

To get MooseX::Method to treat your exceptions like its own, use this class to throw exceptions in the validation.

ATTRIBUTES

Top

error

The error message.

METHODS

Top

throw

Shorthand for...

  my $exception = MooseX::Method::Exception->new (error => $message);

  die $exception;

Takes a single argument, the error message.

rethrow

Rethrows an existing exception.

stringify

Makes the exception object stringify to the error message in a string context.

BUGS

Top

Most software has bugs. This module probably isn't an exception. If you find a bug please either email me, or add the bug to cpan-RT.

AUTHOR

Top

Anders Nor Berle <debolaz@gmail.com>

COPYRIGHT AND LICENSE

Top


MooseX-Method documentation Contained in the MooseX-Method distribution.

package MooseX::Method::Exception;

use Moose;

use overload '""' => \&stringify;

has error => (is => 'rw',isa => 'Str',required => 1);

our $VERSION = '0.01';

our $AUTHORITY = 'cpan:BERLE';

sub throw {
  my ($class,$error) = @_;

  my $self = $class->new (error => $error);

  die $self;

  return;
}

sub rethrow {
  my ($self) = @_;

  die $self;

  return;
}

sub stringify {
  my ($self) = @_;

  return $self->error;
}

__PACKAGE__->meta->make_immutable;

1;

__END__