Ricardo SIGNES > Throwable-0.200011 > Throwable::Error

Download:
Throwable-0.200011.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Module Version: 0.200011   Source   Latest Release: Throwable-0.200012

NAME ^

Throwable::Error - an easy-to-use class for error objects

VERSION ^

version 0.200011

SYNOPSIS ^

  package MyApp::Error;
  use Moose;
  extends 'Throwable::Error';

  has execution_phase => (
    is  => 'ro',
    isa => 'MyApp::Phase',
    default => 'startup',
  );

...and in your app...

  MyApp::Error->throw("all communications offline");

  # or...

  MyApp::Error->throw({
    message         => "all communications offline",
    execution_phase => 'shutdown',
  });

DESCRIPTION ^

Throwable::Error is a base class for exceptions that will be thrown to signal errors and abort normal program flow. Throwable::Error is an alternative to Exception::Class, the features of which are largely provided by the Moose object system atop which Throwable::Error is built.

Throwable::Error performs the Throwable and StackTrace::Auto roles. That means you can call throw on it to create and throw an error object in one call, and that every error object will have a stack trace for its creation.

ATTRIBUTES ^

message

This attribute must be defined and must contain a string describing the error condition. This string will be printed at the top of the stack trace when the error is stringified.

stack_trace

This attribute, provided by StackTrace::Auto, will contain a stack trace object guaranteed to respond to the as_string method. For more information about the stack trace and associated behavior, consult the StackTrace::Auto docs.

METHODS ^

as_string

This method will provide a string representing the error, containing the error's message followed by the its stack trace.

AUTHORS ^

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2014 by Ricardo SIGNES.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

syntax highlighting: