[Python-ideas] Block-Scoped Exception Handlers

Kyle Lahnakoski klahnakoski at mozilla.com
Thu May 5 15:17:43 EDT 2016

On 5/5/2016 12:04 PM, Paul Moore wrote:
> On 5 May 2016 at 16:35, Kyle Lahnakoski <klahnakoski at mozilla.com> wrote:
>> `raise from` does not solve the excessive indentation problem:  I have many
>> `try` clauses, causing deep indentation in my code.  The block-scoped
>> exception handlers would mitigate this deep indentation, and make exception
>> handling even easier to add.
> contextmanager/ExitStack would likely help with the indentation
> problem. As would simply breaking out some of the deeply nested code
> into independent functions.
May you provide me with an example of how contextmanager would help with
the indentation?  From what little I can glean, Python2.7 already has
this, and I use it, but I do not see how replacing `try` blocks with
`with` blocks reduces indentation.   I do agree it looks cleaner than a
`try/except` block though.  

I do agree that breaking out deeply nested code into independent
functions can help with the indentation.  I find breaking out functions
that only have call site quite disappointing.  My disappointment is
proportional to the number of block-scoped variables.

Thank you!

More information about the Python-ideas mailing list