In java you need to specify what your function can throw and if it tries to throw something that it has not specified as being able to throw, then your program won't compile.
Agreed, checked exceptions solve the same problem, but having separate control flow mechanism for certain kinds of data still seems subpar. Return values can solve the same problems and are more general.
Or mention "PTSD" when somebody brings up Java to signal that you're above such foolishness, and rely on nobody seeking an explanation for your aversion.
In java you need to specify what your function can throw and if it tries to throw something that it has not specified as being able to throw, then your program won't compile.