![]() Server : Apache/2.4.62 (Unix) OpenSSL/1.0.2k-fips System : Linux server1.richineiserver.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : fdshops ( 1003) PHP Version : 8.2.21 Disable Function : NONE Directory : /usr/lib64/perl5/vendor_perl/Razor2/ |
#!/usr/bin/perl -sw ## ## Razor2::Errorhandler -- Base class that provides error ## handling functionality. ## ## Copyright (c) 2001, Vipul Ved Prakash. All rights reserved. ## This code is free software; you can redistribute it and/or modify ## it under the same terms as Perl itself. ## ## $Id: Errorhandler.pm,v 1.5 2005/08/03 21:43:09 rsoderberg Exp $ package Razor2::Errorhandler; use strict; sub new { bless {}, shift; } sub error { no strict; my ( $self, $errstr, $construction_error ) = @_; if ($construction_error) { my ( $package, @undef ) = caller(); my $location = "$package\::errstr"; my $spot = *{$location}{SCALAR}; $$spot = "$errstr\n"; } else { $$self{errstr} = "$errstr\n"; } $self->log( $self->{logerrors}, "Error: $errstr\n" ) if $self->{logerrors}; use strict; return; } sub errstr { my $self = shift; return $$self{errstr}; } sub errprefix { my ( $self, $prefix ) = @_; $$self{errstr} = $prefix . ": " . $$self{errstr}; return; } sub errstrrst { my $self = shift; $$self{errstr} = ""; } 1; =head1 NAME Razor::Errorhandler - Error handling mechanism for Razor. =head1 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! ... " =head1 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 B<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. =head1 METHODS =over 4 =item B<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. =item B<errstr()> errstr() is an accessor method for $self->{errstr}. =back =head1 AUTHOR Vipul Ved Prakash, E<lt>mail@vipul.netE<gt> =head1 SEE ALSO Razor::Client(3) =cut