ConnectionError handling problem

Chris Angelico rosuav at gmail.com
Sun Sep 20 15:25:58 CEST 2015


On Sun, Sep 20, 2015 at 10:45 PM, Jon Ribbens
<jon+usenet at unequivocal.co.uk> wrote:
> On 2015-09-19, Mark Lawrence <breamoreboy at yahoo.co.uk> wrote:
>> On 19/09/2015 07:13, shiva upreti wrote:
>>>              try:
>>>                      r=requests.post(url, data=query_args)
>>>              except:
>>>                      print "Connection error"
>>
>> Never use a bare except in Python, always handle the bare minimum number
>> of exceptions that you need to, in this case your ConnectionError.
>
> While I entirely agree with the principle of being specific in what
> exceptions you are catching (with the absolute maximum being
> 'Exception'), it is often not obvious which ones you need to specify.
> The code above probably actually needs to catch EnvironmentError if
> it is intended to intercept all network problems.

General principle: If you don't know what you should be catching,
_catch nothing_. Anything that happens will get printed to the
console. Then when you find that something's getting thrown, you check
out what its name is, and maybe what its superclasses are (in case
there's a broader one worth catching), and only THEN do you stick in a
try/except.

ChrisA


More information about the Python-list mailing list