On Feb 24, 2007, at 1:03 PM, Ian Piper wrote:

>
> but then I'd need to add else clauses for all types of Exception -
> rather ungainly.

Ian:

Joe Huber provides a nice method for abstracting the type of  
exception into a global method.

Taking this as an example, you should consider abstracting your  
exception handling so that
your code is not cluttered with ungainly levels of "if-then-else"  
statements for the various
exception types.

You could create a method that takes an exception, breaks it down  
similar
to the way Joe illustrated, and then acted on the exception type.      
If your method takes
a few string parameters as well, then you pass the exception as well  
as some explanation of what happened.
Now you can make log entries and other actions using the
strings passed into the global method.       But you only need to  
write this method once, and then
call it from any location in your code.

Modifying Joes' example:

Function processError (err as RuntimeException, where as string,  
explanation as string)
....
....
....
    elseIf err ISA IllegalCastException then

      System.Log where + ": "  + "IllegalCastException " +  
explanation + Chr(13)

End Function



In your code, you now can just say:


processError(err,   "thisMethodName",   "trying to open a database  
file from disk")


If you drop these types of calls into try/catch statements, you can  
customize your error handling
by catching each error and sending a customized information to your  
logging method, and yet
your code is modular, concise, readable, and with very few redundant  
statements.


Mark Levinson, MD
Hutchinson, KS



_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to