[
https://issues.apache.org/jira/browse/VFS-508?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14905300#comment-14905300
]
Bernd Eckenfels commented on VFS-508:
-------------------------------------
I see arguments for both sides (and probably a deeper hirachy is needed),
however this is a API incompatible major change so it would have to wait for
3.0.
> Change FileSystemException to inherit from a RuntimeException, and not
> IOException (patch attached)
> ---------------------------------------------------------------------------------------------------
>
> Key: VFS-508
> URL: https://issues.apache.org/jira/browse/VFS-508
> Project: Commons VFS
> Issue Type: Improvement
> Reporter: Shant Stepanian
> Attachments: changeFileSystemToRuntime.patch
>
>
> I'd like to see if we can FileSystemException to inherit from a
> RuntimeException, and not IOException
> I searched the JIRA and didn't see any old tickets referring to this, so I'll
> bring it up here
> _The reason_
> The reason would go back to the whole "Runtime vs. Checked" exception debate,
> and I do prefer the RuntimeException argument that with those, you have the
> choice on whether to declare the try/catch block upon usage, whereas Checked
> exceptions force that on you
> In particular, I bring this up because I feel it hurts the usability of the
> API to have all operations as a checked exception. I recently looked to
> convert my code from using the regular Java JDK file api to the VFS api, and
> I found that in a number of places, I now have to add a try/catch block to
> handle a checked exception where I previously didn't have to (e.g.
> File.listFiles() vs. FileObject.getChildren(), new File("myFile") vs.
> VFS.getManager().resolveFile("myFile"))
> Having one less impediment to migrate would make it easier to adopt for more
> people. As a frame of reference, Hibernate did make a change like this to
> convert HibernateException from checked to runtime, and it was fine for them
> _Patch and Impact of Change_
> I've attached a patch of the change - you can see it is very small, and the
> code still compiles. I ran a test locally and it failed on some of the
> external-resource-related bits; I can follow up on this, but would like to
> first get your approval on this ticket before proceeding w/ any more work
> In terms of client changes - this would only impact clients that happened to
> explicitly expect an IOException in their catch block, and not directly the
> FileSystemException. (this affected one piece of code within VFS itself, but
> could affect clients).
> But I believe that this still would be a beneficial change, as it would make
> all clients' code cleaner and make it easier to adopt
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)