For situations like this, where you expect two different situations, you want to try and structure this as a conditional as closely as possible. Usually, you can find a way to test which situation is in effect without resorting to waiting for an exception, but even if the only  way to do it is an exception, you can do this more cleanly by putting the try/except around the one line that is the test. Have the try and except each set some flag, and then use a conditional on that flag to separate the branches.

But, ideally, you can avoid using try/except at all for planned branching. The `except` handler should primarily be used for managing actual unexpected behavior. For example, in this (separate project) [nominations scraper](https://github.com/unitedstates/congress/blob/master/tasks/nomination_info.py), exceptions are used to handle severe parsing exceptions, where parsing cannot continue and the script needs to abort. If exceptions roll in, then that's a sign the script needs to be updated, because ideally there should just never be any exceptions.