Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
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

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://518272]
help
Chatterbox?
[Discipulus]: thanks marto i'll read it after an urgent phonecall
[choroba]: I configured signature font to 2pt size, so I don't care
[choroba]: Moreover, I don't find the Big Lebowski quote offensive
Lady_Aleena wishes she could format her signature a bit without getting metaphorical hives.

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (8)
As of 2017-06-23 09:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How many monitors do you use while coding?















    Results (539 votes). Check out past polls.