Handling exceptions with Py2 and Py3

Ben Finney ben+python at benfinney.id.au
Fri May 27 10:04:10 EDT 2016


Random832 <random832 at fastmail.com> writes:

> On Fri, May 27, 2016, at 09:18, Ben Finney wrote:
> >     try:
> >         short_routine()
> >     except ConnectionRefusedError as exc:
> >         handle_connection_refused(exc)
> >     except OSError as exc:
> >         if exc.errno == errno.ECONNREFUSED:
> >             handle_connection_refused(exc)
>
> But ConnectionRefusedError inherits from OSError and has errno =
> ECONNREFUSED. So you can simply only have the second except block here,
> and ignore the fact that Python 3 has a class hierarchy of error types.

That's right. I wrote the above to isolate the older clumsy way, and
make it easier to remove.

Every Python 2-and-3 code base should aspire to one day discard the
Python 2 legacy cruft :-)

-- 
 \         “For a sentimentalist is simply one who desires to have the |
  `\    luxury of an emotion without paying for it.” —Oscar Wilde, _De |
_o__)                                                 Profundis_, 1897 |
Ben Finney




More information about the Python-list mailing list