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