Refactored to use rescue at def-level
Clearer conditional with happy path first