[
https://issues.apache.org/jira/browse/IO-813?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17792008#comment-17792008
]
Elliotte Rusty Harold commented on IO-813:
------------------------------------------
It's not our job to fix that problem, any more than it's FEMA's job to prevent
hurricanes. Instead, it's our job to be prepared to respond to that problem
when it inevitably happens, as it's FEMA's to respond to hurricanes. The
purpose of checked exceptions is to make sure that devs prepare for and are
ready to respond to the hurricanes/problems they can't prevent. Runtime
exceptions are for the problems that programmers can prevent by changing their
code.
> LastModifiedFileComparator should not throw exceptions, period
> --------------------------------------------------------------
>
> Key: IO-813
> URL: https://issues.apache.org/jira/browse/IO-813
> Project: Commons IO
> Issue Type: Bug
> Reporter: Elliotte Rusty Harold
> Priority: Major
>
> LastModifiedFileComparator is likely broken by design since it can
> unexpectedly throw UncheckedIOException. This violates the contract of
> Comparable.compareTo which is not documented to throw that exception.
> I analyzed almost this exact case in detail here:
> https://medium.com/@elharo/when-you-cant-throw-an-exception-b9f9b0db9ba4
> I'm not sure how to fix this now, but I'm tempted to simply deprecate this
> entire class.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)