RFR: 8255449: Improve the exception message of MethodHandles::permuteArguments
Aleksey Shipilev
shade at openjdk.java.net
Wed Oct 28 09:23:17 UTC 2020
On Tue, 27 Oct 2020 12:43:47 GMT, Jorn Vernee <jvernee at openjdk.org> wrote:
> Hi,
>
> Currently, if MethodHandles::permuteArguments is used with a reorder array that is the wrong size, or one of the indexes in it is out of bounds of the new type, we simply get the exception message:
>
> bad reorder array [...]
>
> I think we can improve the exception message by splitting these two error cases, and saying in the message exactly what went wrong.
>
> permuteArguments is a tricky API, so improving the error message here should help to improve developer productivity.
>
> This PR proposes splits the error message into e.g.:
>
> old type parameter count and reorder array length do not match: (int,int,String)int, [0, 0]
>
> For an incorrect reorder array length, and:
>
> index is out of bounds for new type: 2, (int,String)int
>
> For an out of bounds index.
>
> Thanks,
> Jorn
This looks okay to me. Someone from core-libs should take a look as well.
As the follow-up, maybe reconcile that method returns normally only with `true`, and throws exceptions otherwise. There are some uses like `assert(permuteArgumentChecks(...))` that apparently depend on this, how necessary are those?
-------------
PR: https://git.openjdk.java.net/jdk/pull/878
More information about the core-libs-dev
mailing list