This module allows you to declare hierarchies of exception classes for use in your code. It also provides a simple exception class that it uses as the default base class for all other exceptions. You may choose to use another base class for your exceptions. Regardless, the ability to declare all your exceptions at compile time is a fairly useful trick and helps push people towards more structured use of exceptions. NOTE: This module requires Perl 5.005 or greater. BUGS ** Perl5.6.0 and stack traces Under Perl 5.6.0, there may be problems with stack traces. I have made the test suite pass under 5.6.0 because most of the module's functionality works under 5.6.0. Please don't email me asking why your stack traces are screwed up, though. Upgrade Perl or deal with it. ** The ->isa method and Class::Fields' base.pm In addition, bugs in the ->isa method under Perl 5.00503 and 5.6.0 (though not 5.6.1), combined with the base.pm module distributed with the Class::Fields module, cause tests 9, 10, and 12 to fail. ** The ->isa method and Perl 5.6.0's base.pm The same bug is triggered by the base.pm module under Perl 5.6.0. Again, this bug is fixed in 5.6.1. Note, the second two bugs can be worked around by replacing the line that contains the call to the ->isa method with a call to the following method: sub _my_isa { my ($inheritor, $base) = @_; my @parents = @{"$inheritor\::ISA"}; while (my $class = shift @parents) { return 1 if $class eq $base; push @parents, @{"$class\::ISA"}; } }