/[cvs]/nfo/perl/libs/DesignPattern/Exception.pm
ViewVC logotype

Annotation of /nfo/perl/libs/DesignPattern/Exception.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (hide annotations)
Fri Feb 21 08:39:31 2003 UTC (21 years, 3 months ago) by joko
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +28 -1 lines
raises exceptions via logger

1 joko 1.1 ## ------------------------------------------------------------------------
2 joko 1.3 ## $Id: Exception.pm,v 1.2 2003/02/20 20:53:55 joko Exp $
3 joko 1.1 ## ------------------------------------------------------------------------
4 joko 1.2 ## $Log: Exception.pm,v $
5 joko 1.3 ## Revision 1.2 2003/02/20 20:53:55 joko
6     ## + fix: using Object's basic log method if not running together with the Logger
7     ##
8 joko 1.2 ## Revision 1.1 2003/02/19 00:35:09 joko
9     ## + initial commit
10     ##
11 joko 1.1 ## ------------------------------------------------------------------------
12    
13    
14     package DesignPattern::Exception;
15    
16     use strict;
17     use warnings;
18    
19 joko 1.2
20     use base qw( DesignPattern::Object );
21    
22 joko 1.3
23 joko 1.1 sub checkExceptions {
24     my $self = shift;
25    
26     # behaviour A: die on error
27     #die ($@) if $@;
28    
29     # behaviour B: log the error message as a warning
30     if ($@) {
31 joko 1.2 if ($self->can('log')) {
32     $self->log($@, 'warning');
33     } else {
34     #print "warning: ", $@, "\n";
35     #print "warning: ", $@, "\n";
36     $self->log_basic($@, 'warning');
37     }
38 joko 1.3 return 1;
39 joko 1.1 }
40    
41 joko 1.3 }
42    
43     sub raiseException {
44     my $self = shift;
45     my $message = shift;
46     my $level = shift;
47     $message ||= 'UNKNOWN ERROR';
48     $level ||= 'critical';
49     $self->_viaLogger($message, $level);
50     }
51    
52     sub _viaLogger {
53     my $self = shift;
54     my $message = shift;
55     my $level = shift;
56     # get logger instance
57     my $logger = eval { Log::Dispatch::Config->instance; };
58     if ($logger) {
59     $logger->log( message => $message, level => $level );
60     } else {
61     print "ERROR[$level] $message", "\n";
62     }
63 joko 1.1 }
64    
65     1;
66     __END__

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed