[Python-ideas] Implied try blocks

Mathias Panzenböck grosser.meister.morti at gmx.net
Fri Mar 30 01:57:28 CEST 2012


On 03/26/2012 12:59 PM, anatoly techtonik wrote:
> On Sun, Mar 25, 2012 at 5:15 PM, Calvin Spealman<ironfroggy at gmail.com>  wrote:
>>
>> r = some_single_statement()
>> except TypeError:
>>     print "oh no!"
>>     raise OhNoException()
>> else:
>>     p = prepare(r)
>>     print "I got", p
>
> -1, because.. When I reading this and encounter "except TypeError", I
> have to update the code that I've already read (the stuff in my head)
> to place it into exception handling block. That's a good anti-pattern
> for readability.
>

Slightly off topic:
And that's why I stopped to write "f() if g()" in Ruby and use the more verbose "if g(); f(); end" 
there. At first it looks like a nice small syntax, but then it turns out to severely hurt 
readability. I even found code like this once:

begin
	# quite some lines of code
rescue
	# more code
end unless something.nil?

Yes, the whole block is actually conditional.

I think syntax, that requires you to update already parsed code is bad.



More information about the Python-ideas mailing list