callback interface (which needed to accept any failure to resume with) - it really should be avoided for use in “normal” code in favour of domain-specific types, and/or try/catch with explicit catches.
runCatching
catching Throwable is indeed something to be cautious of as it will inevitably trip you up in the future.