Thanks Martin. That blog post nailed the answer to my question.

You are the man. :]

SS

On Wed, Oct 22, 2008 at 1:58 PM, Martin Davis <[EMAIL PROTECTED]> wrote:
> Seen this one?
>
> http://radio.weblogs.com/0122027/stories/2003/04/01/JavasCheckedExceptionsWereAMistake.html
>
> Seems like a potentially nice compromise...  Doesn't seem like it's
> gained much traction, though.
>
> Sunburned Surveyor wrote:
>> Roger that. I've done quite a bit of reading on the checked versus
>> unchecked exceptions myself.
>>
>> Thanks for the help.
>>
>> The Sunburned Surveyor
>>
>> On Wed, Oct 22, 2008 at 1:52 PM, Martin Davis <[EMAIL PROTECTED]> wrote:
>>
>>> Seems like a reasonable direction to me.  The question of checked VS
>>> unchecked has been debated endlessly in the Java world, with no final
>>> resolution that I can see.  Bottom line is that if you want to throw an
>>> exception from FeatureCollection it *has* to be unchecked.  The good
>>> news is that if you *are* being a cowboy, there'll be a lot of other
>>> buckaroos ridin' the range with ya.
>>>
>>> Sunburned Surveyor wrote:
>>>
>>>> Martin,
>>>>
>>>> I had thought about converting the IOException to a Runtime Exception.
>>>> The only thing I don't like about this technique is that the client
>>>> code using the library has no control over how the Runtime Exception
>>>> is handled. Of course, I guess you could argue that client code
>>>> shouldn't need control over the exception handling, since Exceptions
>>>> weren't declared as part of the interface to begin with.
>>>>
>>>> Perhaps I have a unique case.
>>>>
>>>> I can't remember, but if you can catch a RuntimeException in the
>>>> client code, this would be a good approach. I can explain in the
>>>> Javadoc for my libraries methods which Runtime Exceptions are thrown
>>>> by my implementations of the interface, and why they are thrown.
>>>>
>>>> The Sunburned Surveyor
>>>>
>>>> On Wed, Oct 22, 2008 at 1:28 PM, Martin Davis <[EMAIL PROTECTED]> wrote:
>>>>
>>>>
>>>>> 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
>>>>>
>>>>>
>>>>>
>>>> -------------------------------------------------------------------------
>>>> 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
>>>
>>>
>>
>> -------------------------------------------------------------------------
>> 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
>

-------------------------------------------------------------------------
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