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 -- http://mail.python.org/mailman/listinfo/python-list