You could map the checked Exception into an unchecked one (and chain the 
original exception).  This isn't going to make any difference to the 
calling code, because it isn't expecting *any* exceptions, let alone 
checked IOExceptions.

There is a school of thought that contends that Java checked exceptions 
are a failed experiment - and I think that this sort of situation is the 
kind of thing they use to make their case.

If you would like other precedent, Spring uses exception mapping to 
dramatically simplify their JDBC adapter framework (and they use 
unchecked exceptions, being heavily in the above school).

Sunburned Surveyor wrote:
> As part of my work on a FeatureCache for OpenJUMP I needed to write a
> class that implemented the FeatureCollection interface. I ran into an
> interesting problem while doing this. I'd like to get some advice from
> my more experienced programmers.
>
> Take (as an example) the add method of the FeatureCollection
> interface. It does not throw any Exception objects. I believe this
> means that implementations of this method can only throw runtime
> exceptions. However, my implementation of this method in the
> FeatureCache depends on IO operations. These IO operations throw
> IOExceptions. They are not runtime exceptions, so I can't rethrow them
> from my add method eimplementation. I don't want to just eat the
> IOException, or return null from the method, because then my poor
> OpenJUMP user won't know what is wrong. My recent reading in the book
> Hardcore Java also made me realize it isn't appropriate to print a
> message and/or stack trace to the System console, because the user may
> never see this.
>
> Here is what I was thinking might be a solution. I'll add a
> setErrorHandler method to my FeatureCache. It will accept any
> implementation of the ErrorHandler interface, which will define a
> single method. This method will look something like this:
>
> public void handleThrowable(Throwable someError)
>
> I can then access this ErrorHandler object from within the
> FeatureCache. This would allow me to handle an IOException from within
> my add method in a way that is appropriate for the handler code. When
> I integrate the FeatureCache into OpenJUMP I could flash a warning on
> the workbench GUI using this mechanism.
>
> Are there any comments on this idea? How do you guys handle similar
> situations, where you are writing a library that implements an
> interface outside the library, and you need to handle/throw undeclared
> exceptions?
>
> Is there an established design pattern for the solution I describe above?
>
> Thanks,
>
> The Sunburned Surveyor
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Jump-pilot-devel mailing list
> Jump-pilot-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>
>   

-- 
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to