Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #12241

Re: Catch and name an exception in Python 2.5 +

Date 2011-08-26 22:36 +0200
From Thomas Jollans <t@jollybox.de>
Subject Re: Catch and name an exception in Python 2.5 +
References <4e57fa5c$0$29968$c3e8da3$5496439d@news.astraweb.com>
Newsgroups comp.lang.python
Message-ID <mailman.452.1314390991.27778.python-list@python.org> (permalink)

Show all headers | View raw


On 26/08/11 21:56, Steven D'Aprano wrote:
> In Python 3, you can catch an exception and bind it to a name with:
> 
> try:
>     ...
> except ValueError, KeyError as error:
>     pass
> 
> In Python 2.5, that is written:
> 
> try:
>     ...
> except (ValueError, KeyError), error:
>     pass
> 
> and the "as error" form gives a SyntaxError.
> 
> Python 2.6 and 2.7 accept either form.
> 
> Is there any way to catch an exception and bind it to a name which will work
> across all Python versions from 2.5 onwards?
> 
> I'm pretty sure there isn't, but I thought I'd ask just in case.

It's not elegant, and I haven't actually tested this, but this should work:

try:
    ...
except (ValueError, KeyError):
    error = sys.exc_info()[2]

-- 
Thomas

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Catch and name an exception in Python 2.5 + Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2011-08-27 05:56 +1000
  Re: Catch and name an exception in Python 2.5 + Thomas Jollans <t@jollybox.de> - 2011-08-26 22:36 +0200
    Re: Catch and name an exception in Python 2.5 + Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2011-08-27 13:45 +1000
      Re: Catch and name an exception in Python 2.5 + Thomas Jollans <t@jollybox.de> - 2011-08-27 11:57 +0200

csiph-web