ConnectionError handling problem
Mark Lawrence
breamoreboy at yahoo.co.uk
Sun Sep 20 09:13:21 EDT 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