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