Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: Exception Classes Advice on Subclasses

by tirwhan (Abbot)
on Dec 21, 2005 at 10:28 UTC ( #518272=note: print w/ replies, xml ) Need Help??


in reply to Exception Classes Advice on Subclasses

Caveat: I've never used Exception::Class in anger, so take my comment with a grain of salt.

I think the main point of using different subclasses is that you can check for the subclass directly when 'catch'ing the exception, and handle it appropriately to the type of error encountered. For example

use Exception::Class ( 'X::FatalIOError' => { # fields etc. }, 'X::TimeOut' => { } ); eval { somecode() }; if ( X::FatalIOError->caught()) { # do something and die } elsif (X::TimeOut->caught() ) { # wait and retry } elsif (Exception::Class->caught() ) { # got an exception we weren't expecting # die horribly or something }

Sure, you could set up something similar with using a single MyException subclass and testing the contents, but it seems a lot cleaner this way.

Update: Heh, adrianh answered the question before my post made it. Oh well, take my post as a more extended example :-)


Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. -- Brian W. Kernighan


Comment on Re: Exception Classes Advice on Subclasses
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://518272]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (5)
As of 2014-09-19 02:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (129 votes), past polls