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