Skip to content

awncorp/data-object-exception

Repository files navigation

NAME

Data::Object::Exception

ABSTRACT

Exception Class for Perl 5

SYNOPSIS

use Data::Object::Exception;

my $exception = Data::Object::Exception->new;

# $exception->throw

DESCRIPTION

This package provides functionality for creating, throwing, and introspecting exception objects.

SCENARIOS

This package supports the following scenarios:

args-1

use Data::Object::Exception;

my $exception = Data::Object::Exception->new('Oops!');

# $exception->throw

The package allows objects to be instantiated with a single argument.

args-kv

use Data::Object::Exception;

my $exception = Data::Object::Exception->new(message => 'Oops!');

# $exception->throw

The package allows objects to be instantiated with key-value arguments.

ATTRIBUTES

This package has the following attributes:

context

context(Any)

This attribute is read-only, accepts (Any) values, and is optional.

id

id(Str)

This attribute is read-only, accepts (Str) values, and is optional.

message

message(Str)

This attribute is read-only, accepts (Str) values, and is optional.

METHODS

This package implements the following methods:

explain

explain() : Str

The explain method returns an error message with stack trace.

  • explain example #1

      use Data::Object::Exception;
    
      my $exception = Data::Object::Exception->new('Oops!');
    
      $exception->explain
    

throw

throw(Tuple[Str, Str] | Str $message, Any $context, Maybe[Number] $offset) : Any

The throw method throws an error with message (and optionally, an ID).

  • throw example #1

      use Data::Object::Exception;
    
      my $exception = Data::Object::Exception->new;
    
      $exception->throw('Oops!')
    
  • throw example #2

      use Data::Object::Exception;
    
      my $exception = Data::Object::Exception->new('Oops!');
    
      $exception->throw
    
  • throw example #3

      use Data::Object::Exception;
    
      my $exception = Data::Object::Exception->new;
    
      $exception->throw(['E001', 'Oops!'])
    

trace

trace(Int $offset, $Int $limit) : Object

The trace method compiles a stack trace and returns the object. By default it skips the first frame.

  • trace example #1

      use Data::Object::Exception;
    
      my $exception = Data::Object::Exception->new('Oops!');
    
      $exception->trace(0)
    
  • trace example #2

      use Data::Object::Exception;
    
      my $exception = Data::Object::Exception->new('Oops!');
    
      $exception->trace(1)
    
  • trace example #3

      use Data::Object::Exception;
    
      my $exception = Data::Object::Exception->new('Oops!');
    
      $exception->trace(0,1)
    

AUTHOR

Al Newkirk, awncorp@cpan.org

LICENSE

Copyright (C) 2011-2019, Al Newkirk, et al.

This is free software; you can redistribute it and/or modify it under the terms of the The Apache License, Version 2.0, as elucidated in the "license file".

PROJECT

Wiki

Project

Initiatives

Milestones

Contributing

Issues

Releases

No releases published

Packages

No packages published