Out of curiosity why can’t a block just do this natively?
Because it would massively alter langage semantics? It converts returns from the nearest function into returns from the nearest (try) block.
Because then you couldn't use ? to propagate errors if they occurred inside any loops or branches within the function, which would be a significant limitation.
Because it would massively alter langage semantics? It converts returns from the nearest function into returns from the nearest (try) block.