RFR: 8308842: Consolidate exceptions thrown from Class-File API
ExE Boss
duke at openjdk.org
Thu May 25 22:48:55 UTC 2023
On Thu, 25 May 2023 08:29:37 GMT, Adam Sotona <asotona at openjdk.org> wrote:
> Class-File API actually throws wide variety of exceptions based on the actual situation. Complete error handling code must cover `IndexOutOfBoundsException`, `IllegalStateException` and `IllegalArgumentException`.
>
> Based on previous discussions we decided to consolidate on `IllegalArgumentException` with possible sub-classes.
>
> It allows easy common error handling in majority of use case, however it allows also to distinguish source of the error when needed (for example `javap` needs to know if the exception comes from constant poll or not).
>
> Newly introduced `ConstantPoolException` extends `IllegalArgumentException` to indicate the source of the problem is in constant pool.
>
> Please review.
>
> Thanks,
> Adam
src/java.base/share/classes/jdk/internal/classfile/CodeBuilder.java line 389:
> 387: // Check for empty try block
> 388: if (tryBlock.isEmpty()) {
> 389: throw new IllegalArgumentException("The body of the try block is empty");
This exception should be documented in the method’s **Javadoc**.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14143#discussion_r1206065903
More information about the core-libs-dev
mailing list