since it's wrapped in a try block, an exceptions before the yield will short-circuit the execution down to the finally block. since there is no "yield" statement in the finally block, the function will just implicitly return None. That's different than "yield None"