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


Groups > comp.lang.python > #73013

Re: try/except/finally

Newsgroups comp.lang.python
From Philip Shaw <jnufcvyvuc@tznvy.pbz>
Subject Re: try/except/finally
References <0a89c96d-de62-42ad-be48-6107ce10d215@googlegroups.com> <mailman.10873.1402196293.18130.python-list@python.org>
Message-ID <53957aa3$0$11095$c3e8da3@news.astraweb.com> (permalink)
Date 2014-06-09 09:13 +0000
Organization Unlimited download news at news.astraweb.com

Show all headers | View raw


On 2014-06-08, Dave Angel <davea@davea.name> wrote:
> Frank B <fbicknel@gmail.com> Wrote in message:
>> Ok; this is a bit esoteric.
>> 
>> So finally is executed regardless of whether an exception occurs, so states the docs.
>> 
>> But, I thought, if I <return> from my function first, that should take precedence.
>> 
>> au contraire
>> 
>> Turns out that if you do this:
>> 
>> try:
>>   failingthing()
>> except FailException:
>>   return 0
>> finally:
>>   return 1
>> 
>> Then finally really is executed regardless... even though you told it to return.
>> 
>> That seems odd to me.
>> 
>
> The thing that's odd to me is that a return is permissible inside
>  a finally block. That return
> should be at top level,  even with the finally line. And of course
>  something else should be in the body of the finally
>  block.

It does have some legitimate uses, for example:

try:
    failingThing()
finally:
    simple_cleanup()
    if(that_worked())
        return
    complicated
        cleanup
    with
        lots
            of
        blocks

OTOH, it could just be that Guido didn't think of banning it when
exceptions were first added and doesn't want to introduce an
incompatability later.

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


Thread

try/except/finally Frank B <fbicknel@gmail.com> - 2014-06-06 10:30 -0700
  Re: try/except/finally Roy Smith <roy@panix.com> - 2014-06-06 13:39 -0400
    Re: try/except/finally Frank B <fbicknel@gmail.com> - 2014-06-06 10:47 -0700
      Re: try/except/finally Ned Batchelder <ned@nedbatchelder.com> - 2014-06-06 14:22 -0400
      Re: try/except/finally Ethan Furman <ethan@stoneleaf.us> - 2014-06-07 15:49 -0700
      Re: try/except/finally Chris Angelico <rosuav@gmail.com> - 2014-06-08 09:47 +1000
        Re: try/except/finally Roy Smith <roy@panix.com> - 2014-06-07 20:12 -0400
          Re: try/except/finally Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-06-08 02:10 +0100
            Re: try/except/finally Roy Smith <roy@panix.com> - 2014-06-07 21:32 -0400
            Re: try/except/finally Marko Rauhamaa <marko@pacujo.net> - 2014-06-08 10:12 +0300
              Re: try/except/finally Joshua Landau <joshua@landau.ws> - 2014-06-08 18:57 +0100
              Re: try/except/finally Ian Kelly <ian.g.kelly@gmail.com> - 2014-06-08 12:07 -0600
              Re: try/except/finally Ian Kelly <ian.g.kelly@gmail.com> - 2014-06-08 12:02 -0600
        Re: try/except/finally Rustom Mody <rustompmody@gmail.com> - 2014-06-07 20:58 -0700
          Re: try/except/finally Thomas Rachel <nutznetz-0c1b6768-bfa9-48d5-a470-7603bd3aa915@spamschutz.glglgl.de> - 2014-06-10 09:27 +0200
            Re: try/except/finally Marko Rauhamaa <marko@pacujo.net> - 2014-06-10 12:07 +0300
            Re: try/except/finally Rustom Mody <rustompmody@gmail.com> - 2014-06-10 05:06 -0700
              Re: try/except/finally Skip Montanaro <skip@pobox.com> - 2014-06-10 13:11 -0500
                Re: try/except/finally Rustom Mody <rustompmody@gmail.com> - 2014-06-10 19:01 -0700
            Re: try/except/finally Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-06-10 19:14 +0100
              Re: try/except/finally Grant Edwards <invalid@invalid.invalid> - 2014-06-10 18:48 +0000
                Re: try/except/finally Chris Angelico <rosuav@gmail.com> - 2014-06-11 06:37 +1000
                Re: try/except/finally Roy Smith <roy@panix.com> - 2014-06-10 16:38 -0400
                Re: try/except/finally Chris Angelico <rosuav@gmail.com> - 2014-06-11 06:43 +1000
                Re: try/except/finally Ethan Furman <ethan@stoneleaf.us> - 2014-06-10 13:43 -0700
                Re: try/except/finally Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-06-10 22:59 +0100
                Re: try/except/finally Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-06-11 00:00 +0000
                Re: try/except/finally Chris Angelico <rosuav@gmail.com> - 2014-06-11 10:12 +1000
                Re: try/except/finally Roy Smith <roy@panix.com> - 2014-06-10 20:22 -0400
                Re: try/except/finally Tim Delaney <timothy.c.delaney@gmail.com> - 2014-06-11 10:40 +1000
                Re: try/except/finally Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-06-11 01:53 +0100
                Re: try/except/finally Chris Angelico <rosuav@gmail.com> - 2014-06-11 11:00 +1000
                Re: try/except/finally Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-06-11 02:06 +0100
                Re: try/except/finally alister <alister.nospam.ware@ntlworld.com> - 2014-06-11 08:35 +0000
                Re: try/except/finally Roy Smith <roy@panix.com> - 2014-06-11 08:50 -0400
              Re: try/except/finally alister <alister.nospam.ware@ntlworld.com> - 2014-06-10 19:02 +0000
    Re: try/except/finally Joshua Landau <joshua@landau.ws> - 2014-06-08 19:05 +0100
  Re:try/except/finally Dave Angel <davea@davea.name> - 2014-06-07 21:59 -0500
    Re: try/except/finally Philip Shaw <jnufcvyvuc@tznvy.pbz> - 2014-06-09 09:13 +0000
      Re: try/except/finally Marko Rauhamaa <marko@pacujo.net> - 2014-06-09 12:40 +0300
        Re: try/except/finally Shiyao Ma <i@introo.me> - 2014-06-10 00:23 +0800
        Re: try/except/finally Skip Montanaro <skip@pobox.com> - 2014-06-09 11:56 -0500

csiph-web