package Bio::Phylo::Exceptions; use Exception::Class ( 'Bio::Phylo::Exceptions', 'Bio::Phylo::Exceptions::BadNumber' => { isa => 'Bio::Phylo::Exceptions' }, 'Bio::Phylo::Exceptions::BadString' => { isa => 'Bio::Phylo::Exceptions' }, 'Bio::Phylo::Exceptions::BadFormat' => { isa => 'Bio::Phylo::Exceptions' }, 'Bio::Phylo::Exceptions::ObjectMismatch' => { isa => 'Bio::Phylo::Exceptions' } ); 1; #### use Scalar::Util qw(looks_like_number); sub set_number { my ( $self, $number ) = @_; looks_like_number $number ? $self->{'NUMBER'} = $number : Bio::Phylo::Exceptions::BadNumber->throw(error => 'bad number'); } #### # try eval { $obj->set_number(sdf7897) }; # catch if (UNIVERSAL::isa($@,'Bio::Phylo::Exceptions::BadNumber')){ # do something }