RFR: 8285396: Do not fill in the stacktrace of an internal exception [v2]

Pavel Rappo prappo at openjdk.java.net
Thu Apr 21 23:28:16 UTC 2022


On Thu, 21 Apr 2022 22:10:36 GMT, Pavel Rappo <prappo at 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


More information about the compiler-dev mailing list