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