On Tue, 6 Oct 2020 13:55:55 GMT, Roger Riggs <rri...@openjdk.org> wrote:

>> The `java.util.Formatter` format specifies support for field widths, 
>> argument indexes, or precision lengths of a field
>> that relate to the variadic arguments supplied to the formatter. These 
>> numbers are specified by integers, sometimes
>> negative. For argument index, it's specified in the documentation that the 
>> highest allowed argument is limited by the
>> largest possible index of an array (ie the largest possible variadic index), 
>> but for the other two it's not defined.
>> Moreover, what happens when a number field in a string is too large or too 
>> small to be represented by a 32-bit integer
>> type is not defined.  This fix adds documentation to specify what error 
>> behavior occurs during these cases.
>> Additionally it adds an additional exception type to throw when an invalid 
>> argument index is observed.  A CSR will be
>> required for this PR.
>
> Is the new exception type useful?  yes, it matches the previous pattern.
> But it does not (and none of the IllegalFormatException subclasses) produce a 
> readable message with the offending
> value. So the developer will not see anything useful. The fine grained 
> exceptions provide little value.

I've been on the fence about this, personally. The Formatter uses pretty 
fine-grained exception types for error
conditions. I'd be okay discontinuing this practice here, but am not sure what 
to replace this with. Perhaps we enable
`IllegalFormatException` to be, itself, public and instantiable ?

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

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

Reply via email to