Using a `try..except` block here still seems odd when it's really just normal logic flow. Perhaps the structure in this function should be:
```
if PlateCarree -> PlateCarree and all params matching except lon_0:
    Compute bboxes and proj_offset (now with no failure modes)
    Check if vertices sit inside bboxes (as before)
```