Exception::System - The exception class for system or library calls
# Loaded automatically if used as Exception::Base's argument use Exception::Base ':all', 'Exception::System', 'Exception::File' => { isa => 'Exception::System' }; try eval { my $file = "/notfound"; open FILE, $file or throw Exception::File message=>"Can not open file: $file", file=>$file; }; if (catch Exception::System my $e) { if ($e->isa('Exception::File')) { warn "File error:".$e->{errstr}; } if ($e->with(errname=>'ENOENT')) { warn "Caught not found error"; } }
This class extends standard Exception::Base with handling system or library errors. The additional fields of the exception object are filled on throw and contain the error message and error codes.
Exception::Base >= 0.09
Class fields are implemented as values of blessed hash.
Contains the system error string fetched at exception throw. It is the part of the string representing the exception object. It is the same as $! variable in string context.
eval { throw Exception::System message=>"Message"; }; catch Exception::System my $e and print $e->{errstr};
Contains the extended system error string fetched at exception throw. It is the same as $^E variable.
eval { throw Exception::System message=>"Message"; }; catch Exception::System my $e and $e->{errstros} ne $e->{errstr} and print $e->{errstros};
Contains the system error number fetched at exception throw. It is the same as $! variable in numeric context.
eval { throw Exception::System message=>"Message"; };
Contains the system error constant from the system error.h include file.
eval { throw Exception::System message=>"Message"; }; catch Exception::System my $e and $e->{errname} eq 'ENOENT' and $e->throw;
Returns the string representation of exception object. The format of output is "message: error string".
eval { open F, "/notexisting"; throw Exception::System; }; print $@->stringify(1); print "$@";
Collect system data and fill the attributes of exception object. This method is called automatically if exception if throwed.
See Exception::Base.
Exception::Base.
The module was tested with Devel::Cover and Devel::Dprof.
If you find the bug, please report it.
Piotr Roszatycki <dexter@debian.org>
Copyright (C) 2007 by Piotr Roszatycki <dexter@debian.org>.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
See http://www.perl.com/perl/misc/Artistic.html
To install Exception::System, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Exception::System
CPAN shell
perl -MCPAN -e shell install Exception::System
For more information on module installation, please visit the detailed CPAN module installation guide.