How about

```python
while True:
    try:
        ...
        break
    except ...:
        if ...:
        else:
            break
```
Then we don't need this `can_return` business