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

AltStyle によって変換されたページ (->オリジナル) /