On Wed, 24 Aug 2022 16:12:52 GMT, Raffaello Giulietti <d...@openjdk.org> wrote:

>> src/java.base/share/classes/java/util/regex/MatchResult.java line 274:
>> 
>>> 272:      *          might be preferable for other reasons.
>>> 273:      *
>>> 274:      * @since 20
>> 
>> Should the method declare that it throws `UnsupportedOperationsExceptions`?
>> Because that is what will happen if `namedGroups` is not 
>> overridden/implemented.
>> 
>> Same comment for the other new methods.
>
> Not sure.
> If the convention is to document every single `RuntimeException` that methods 
> invoked by this one could throw, then yes.
> In other words, should `RuntimeExcpetion`s thrown deep in an invocation stack 
> be documented in every caller method?

In principle, yes. In practice, I see that `namedGroups` doesn't have an 
`@throws UnsupportedOperationException` but has an `@implSpec` that says that 
the default implementation throws `UnsupportedOperationException`. This seems 
strange to me - maybe @stuart-marks or @jddarcy can comment.

What I was hinting at here however is that we might want to extend the 
`@implSpec` of the new methods to note that these method will throw 
`UnsuportedOperationException` if `namedGroups` is not implemented (like the 
`@implSpec` of `namedGroups` does).

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

PR: https://git.openjdk.org/jdk/pull/10000

Reply via email to