This was already fixed in d475abcdb9, but 685937a79e introduced additional returns. Now use an approach that will always work, even when returning via exceptions being thrown.
d475abcdb9
685937a79e