On Thu, 21 Apr 2022 22:10:36 GMT, Pavel Rappo <pra...@openjdk.org> wrote:

> The changes for the `UncheckedIOException` wrappers look OK, but might be 
> even better if the code properly unwrapped the wrapper and simply rethrew the 
> underlying cause. For example,
> 
> replace
> 
> ```
>         } catch (UncheckedIOException ex) {
>             throw new IOException(ex.getMessage(), ex);
> ```
> 
> with
> 
> ```
>         } catch (UncheckedIOException ex) {
>             throw ex.getCause();
> ```

Thanks for directing my attention to these two exceptions! I think I lost my 
marbles for a good few minutes when decided to change them like that. I must've 
been thinking about something else.

Those two exceptions are used as intended: for exceptional circumstances. So 
their stacktraces have diagnostic value. I don't think we should re-throw the 
cause, because the stacktrace might look confusing.

The only thing we could improve here is to replace ad-hoc 
`UncheckedIOException` with standard `java.io.UncheckedIOException`, which 
appeared much later in the codebase. Please have a look at 
a42a66268f9d2175d212e6a5cba52fd11ec5332b and tell me what you think.

-------------

PR: https://git.openjdk.java.net/jdk/pull/8347

Reply via email to