ConnectionError handling problem

Mark Lawrence breamoreboy at yahoo.co.uk
Sun Sep 20 15:13:21 CEST 2015


On 20/09/2015 13:45, Jon Ribbens 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.
>

I doubt it, as from the docs "The following exceptions are kept for 
compatibility with previous versions; starting from Python 3.3, they are 
aliases of OSError.".  EnvironmentError is one of those listed.  I'd 
have thought it far more likely that you'd want to catch one or more of 
the OSError subclasses, as finer grained exceptions was part of the 
rationale behind PEP 3151 -- Reworking the OS and IO exception hierarchy.

-- 
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.

Mark Lawrence



More information about the Python-list mailing list