--- nfo/perl/libs/DesignPattern/Exception.pm 2003/02/20 20:53:55 1.2 +++ nfo/perl/libs/DesignPattern/Exception.pm 2003/02/21 08:39:31 1.3 @@ -1,7 +1,10 @@ ## ------------------------------------------------------------------------ -## $Id: Exception.pm,v 1.2 2003/02/20 20:53:55 joko Exp $ +## $Id: Exception.pm,v 1.3 2003/02/21 08:39:31 joko Exp $ ## ------------------------------------------------------------------------ ## $Log: Exception.pm,v $ +## Revision 1.3 2003/02/21 08:39:31 joko +## raises exceptions via logger +## ## Revision 1.2 2003/02/20 20:53:55 joko ## + fix: using Object's basic log method if not running together with the Logger ## @@ -19,6 +22,7 @@ use base qw( DesignPattern::Object ); + sub checkExceptions { my $self = shift; @@ -34,9 +38,32 @@ #print "warning: ", $@, "\n"; $self->log_basic($@, 'warning'); } + return 1; } } +sub raiseException { + my $self = shift; + my $message = shift; + my $level = shift; + $message ||= 'UNKNOWN ERROR'; + $level ||= 'critical'; + $self->_viaLogger($message, $level); +} + +sub _viaLogger { + my $self = shift; + my $message = shift; + my $level = shift; + # get logger instance + my $logger = eval { Log::Dispatch::Config->instance; }; + if ($logger) { + $logger->log( message => $message, level => $level ); + } else { + print "ERROR[$level] $message", "\n"; + } +} + 1; __END__