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

Reply via email to