I'm not a big user of `else:` block as part of a try/except, so this took me longer than it should have to understand!  Lets put it all in the `try:` and catch a more specific RuntimeError.