[Python-Dev] PEP 310 and exceptions
holger krekel
hpk at trillke.net
Sat Apr 23 10:10:41 CEST 2005
On Fri, Apr 22, 2005 at 19:03 -0700, Josiah Carlson wrote:
> hpk at trillke.net (holger krekel) wrote:
> > basically translates to:
> >
> > if hasattr(x, '__enter__'):
> > x.__enter__()
> > try:
> > ...
> > except:
> > if hasattr(x, '__except__'): x.__except__(...)
> > else: x.__exit__()
> > else:
> > x.__exit__()
>
> Nope...
>
> >>> def foo():
> ... try:
> ... print 1
> ... return
> ... except:
> ... print 2
> ... else:
> ... print 3
> ...
> >>> foo()
> 1
> >>>
doh! of course, you are right. So it indeeds better translates
to a nested try-finally/try-except when transformed to python code.
Nick Coghlan points at the correct ideas below in this thread.
At the time i was implementing things by modifying ceval.c
rather than by just a compiling addition, i have to admit.
cheers,
holger
More information about the Python-Dev
mailing list