Crappy Python code of the day

Steven D'Aprano steve at pearwood.info
Wed Feb 15 23:15:59 EST 2017


On Thu, 16 Feb 2017 14:28:57 +1100, Chris Angelico wrote:

> On Thu, Feb 16, 2017 at 1:25 PM, Steven D'Aprano <steve at pearwood.info>
> wrote:
>> This has been in production for months, the writer of the code has left
>> and the new maintainer has been asked to find out why it has been
>> crashing with UnboundLocalError:
[...]

> Without even looking at the link.... 'except pass' around an assignment.
> Unless there's a preceding "result = some-other-object",
> that's going to annoyingly fail. Maybe "except return None"?

Oh, we know why the code is failing. We don't need help diagnosing the 
UnboundLocalError exception. You're right: there's an except pass around 
an assignment, so if the assignment fails, `result` never gets set.

But the real WTF is that the ConnectionError is just thrown away. There's 
no attempt to recover from it, or log it, or try connecting again... the 
end result is that the application dies with an unhelpful 
UnboundLocalError, and (until today) we had no idea what the actual cause 
of the failure was.


[Name changed to protect the guilty]

Thanks Aloysius!!!




-- 
Steve



More information about the Python-list mailing list