http://qs1969.pair.com?node_id=518271


in reply to Exception Classes Advice on Subclasses

Hmmm. So I guess my question is, if all those subclasses do the same thing, am I getting anything out of creating them all?

You get a more convenient syntax for catching particular exceptions. For example:

if ( my $e = MyException->caught ) { ... } elsif ($@) { die $@; }

much easier than delving into fields to figure out what kind of exception has been thrown.

You also get a simple way to represent a hierarchy of exception types. If you have a general ValidationError exception class, with a DateValidation, NameValidation, etc. subclasses then you could capture all of the subclasses with a single ValidationError->caught.