I have wondered about this in the past. Conventional wisdom is try/catch was more costly, or poorer form. I do like the "look" of the try/except block right here and realize replacing with a check for none is likely not to look as neat and clean. There isn't any real time penalty if this is correct: http://stackoverflow.com/questions/2522005/cost-of-exception-handlers-in-python
What do you think?