---
name: "Class::ErrorHandler"
section: "3pm"
platform: "linux"
package: "libclass-errorhandler-perl"
version: "0.04-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Class::ErrorHandler"
---

# Class::ErrorHandler(3pm)

Base class for error handling

## NAME

Class::ErrorHandler - Base class for error handling

## SYNOPSIS

```
    package Foo;
    use base qw( Class::ErrorHandler );
    sub class_method {
        my $class = shift;
        ...
        return $class->error("Help!")
            unless $continue;
    }
    sub object_method {
        my $obj = shift;
        ...
        return $obj->error("I am no more")
            unless $continue;
    }
    package main;
    use Foo;
    Foo->class_method or die Foo->errstr;
    my $foo = Foo->new;
    $foo->object_method or die $foo->errstr;
```

## DESCRIPTION

*Class::ErrorHandler* provides an error-handling mechanism that's generic enough to be used as the base class for a variety of OO classes. Subclasses inherit its two error-handling methods, *error* and *errstr*, to communicate error messages back to the calling program.

On failure (for whatever reason), a subclass should call *error* and return to the caller; *error* itself sets the error message internally, then returns `"undef"`. This has the effect of the method that failed returning `"undef"` to the caller. The caller should check for errors by checking for a return value of `"undef"`, and calling *errstr* to get the value of the error message on an error.

As demonstrated in the SYNOPSIS, *error* and *errstr* work as both class methods and object methods.

## USAGE

### Class-\>error($message)

### $object-\>error($message)

Sets the error message for either the class *Class* or the object *$object* to the message *$message*. Returns `"undef"`.

### Class-\>errstr

### $object-\>errstr

Accesses the last error message set in the class *Class* or the object *$object*, respectively, and returns that error message.

## LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

## AUTHOR & COPYRIGHT

Except where otherwise noted, *Class::ErrorHandler* is Copyright 2004 Benjamin Trott, cpan@stupidfool.org. All rights reserved.
