On 21/10/2025 13:50, Pavel Rappo wrote:
As suggested in a PR thread [*], I bring this question to loom-dev:

I haven't been paying much attention to the recent previews of this
feature, so feel free to point me to a relevant discussion elsewhere.

As I understand it, an unchecked StructuredTaskScope.TimeoutException
was added in JDK 25. There's also the well-known checked
java.util.TimeoutException. I assume that the namesake exception was
added solely because it's unchecked. I also assume
UncheckedTimeoutException was considered at some stage, because in my
mind, the situation is similar to that of
IOException/UncheckedIOException.

If a timeout is configured when opening a new StructuredTaskScope then it applies to the scope. If the timeout expires before the scope is closed then the timeout causes the scope to be cancelled and join to wakeup. Declaring join to throw the checked-TimeoutException would be very annoying when not using a timeout or in the update, when there is other outcome when the timeout expires.

One of these years, there will be progress on the topic of exception transparency. It's impossible to know how this might look but there is a good chance that it will shine a light on past decisions to introduce UncheckedXXX exceptions. Introducing UncheckedTimeoutException would invite more usages, way beyond the very specific need here.

-Alan

Reply via email to