Razor2::Errorhandler(3) User Contributed Perl Documentation Razor2::Errorhandler(3)NAME
Razor::Errorhandler - Error handling mechanism for Razor.
SYNOPSIS
package Foo;
use Razor::Errorhandler;
@ISA = qw(Razor::Errorhandler);
sub alive {
..
..
return
$self->error ("Awake, awake! Ring the alarum bell.
Murther and treason!", $dagger)
if $self->murdered($king);
}
package main;
use Foo;
my $foo = new Foo;
$foo->alive($king) or print $foo->errstr();
# prints "Awake, awake! ... "
DESCRIPTION
Razor::Errorhandler encapsulates the error handling mechanism used by the modules in Razor bundle. Razor::Errorhandler doesn't have a
constructor and is meant to be inherited. The derived modules use its two methods, error() and errstr(), to communicate error messages to
the caller.
When a method of the derived module fails, it calls $self->error() and returns to the caller. The error message passed to error() is made
available to the caller through the errstr() accessor. error() also accepts a list of sensitive data that it wipes out (undef'es) before
returning.
The caller should never call errstr() to check for errors. errstr() should be called only when a method indicates (usually through an undef
return value) that an error has occured. This is because errstr() is never overwritten and will always contain a value after the occurance
of first error.
METHODS
error($mesage, ($wipeme, $wipemetoo))
The first argument to error() is $message which is placed in $self->{errstr} and the remaining arguments are interpretted as variables
containing sensitive data that are wiped out from the memory. error() always returns undef.
errstr()
errstr() is an accessor method for $self->{errstr}.
AUTHOR
Vipul Ved Prakash, <mail@vipul.net>
SEE ALSO Razor::Client(3)perl v5.12.1 2005-08-03 Razor2::Errorhandler(3)
Check Out this Related Man Page
NetSDS::Class::Abstract(3pm) User Contributed Perl Documentation NetSDS::Class::Abstract(3pm)NAME
NetSDS::Class::Abstract - superclass for all NetSDS APIs
SYNOPSIS
package MyClass;
use base 'NetSDS::Class::Abstract';
__PACKAGE__->mk_accessors(qw/my_field/);
sub error_sub {
my ($self) = @_;
if (!$self->my_field) {
return $self->error("No my_field defined");
}
}
1;
DESCRIPTION
"NetSDS::Class::Abstract" is a superclass for all other NetSDS classes, containing the following functionality:
o common class constructor
o safe modules inclusion
o class and objects accessors
o logging
o error handling;
All other class/object APIs should inherit this class to use it's functionality in standard way.
CONSTRUCTOR, INITIALIZATION, APPLICATION
new(%params) - common constructor
"new()" method implements common constructor for NetSDS classes. Constructor may be overwriten in inherited classes and usually this
happens to implement module specific functionality.
Constructor requres parameters as hash that are set as object properties.
my $object = NetSDS::SomeClass->new(
foo => 'abc',
bar => 'def',
);
mk_class_accessors(@properties) - class properties accessor
See Class::Accessor for details.
__PACKAGE__->mk_class_accessors('foo', 'bar');
mk_accessors(@propertire) - object properties accessors
See Class::Accessor::Class for details.
$self->mk_accessors('foo', 'bar');
Other "Class::Accessor::Class" methods available as well.
use_modules(@modules_list) - load modules on demand
"use_modules()" provides safe on demand modules loader. It requires list of modules names as parameters
Return 1 in case of success or "undef" if faied. Error messages in case of failure are available using "errstr()" call.
Example:
# Load modules for daemonization
if ($daemon_mode) {
$self->use_modules("Proc::Daemon", "Proc::PID::File");
}
unbless() - return unblessed object
Return unblessed data structure of object that may be used when some code requires non blessed structures (like JSON serialization).
Example:
my $var = $obj->unbless();
LOGGING
logger() - get/set logging handler
"logger" property is an object that should provide functionality handling log messaging. Usually it's object of NetSDS::Logger class or
"undef". However it may another object implementing non-standard features like sending log to e-mail or to DBMS.
Example:
# Set logger and send log message
$obj->logger(NetSDS::Logger->new());
$obj->log("info", "Logger connected");
log($level, $message) - write log message
Paramters: log level, log message
$obj->log("info", "We still alive");
ERROR HANDLING
error($msg, [$code]) - set error message and code
"error()" method set error message and optional error code. It can be invoked in both class and object contexts.
Example 1: set class error
NetSDS::Foo->error("Mistake found");
Example 2: set object error with code
$obj->error("Can't launch rocket", BUG_STUPID);
errstr() - retrieve error message
"errstr()" method returns error string in both object and class contexts.
Example:
warn "We have an error: " . $obj->errstr;
errcode() - retrieve error code
"errcode()" method returns error code in both object and class contexts.
Example:
if ($obj->errcode == 42) {
print "Epic fail! We've found an answer!";
}
EXAMPLES
See "samples" directory and other "NetSDS" moduleis for examples of code.
SEE ALSO
Class::Accessor::Class
AUTHOR
Michael Bochkaryov <misha@rattler.kiev.ua>
LICENSE
Copyright (C) 2008-2009 Net Style Ltd.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
perl v5.10.1 2010-04-28 NetSDS::Class::Abstract(3pm)