Data::Handle::Exception - Super-light Weight Dependency Free Exception base.
version 1.000001
use Data::Handle::Exception; Data::Handle::Exception->generate_exception( 'Foo::Bar' => 'A Bar error occurred :(' )->throw();
Data::Handle's primary goal is to be somewhat "Infrastructural" in design, much like Package::Stash is, being very low-level, and doing one thing, and doing it well, solving an issue with Perl's native implementation.
The idea is for more complex things to use this, instead of this using more complex things.
As such, a dependency on something like Moose would be overkill, possibly even detrimental to encouraging the use of this module.
So we've scrimped and gone really cheap ( for now at least ) in a few places to skip adding downstream dependencies, so this module is a slightly nasty but reasonably straight forward exception class.
The actual Exception classes don't actually have their own sources, they're automatically generated when Data::Handle::Exception is loaded. And we have some really nice backtraces stolen from Carp's code, with some sexy colored formatting. See "stringify" for details.
Data::Handle::Exception
my @stack; my $i = Data::Handle::Exception->new( $messageString, \@stack );
Data::Handle::Exception->new( $messageString, \@stack )->throw();
Turns this stacktrace into a string.
$exception->stringify(); my $str = "hello " . $exception . " world";
If you have a colored terminal, then Term::ANSIColor is used to highlight lines based on how likely they are to be relevant to diagnosis.
Kent Fredric <kentnl@cpan.org>
This software is copyright (c) 2017 by Kent Fredric <kentnl@cpan.org>.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Data::Handle, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Data::Handle
CPAN shell
perl -MCPAN -e shell install Data::Handle
For more information on module installation, please visit the detailed CPAN module installation guide.