Hi all, I'm looking for some structure advice. I'm writing something that currently looks like the following:
try: <short amount of code that may raise a KeyError> except KeyError: <error handler> else: <nontrivial amount of code> This is working fine. However, I now want to add a call to a function in the `else' part that may raise an exception, say a ValueError. So I was hoping to do something like the following: try: <short amount of code that may raise a KeyError> except KeyError: <error handler> else: <nontrivial amount of code> except ValueError: <error handler> However, this isn't allowed in Python. An obvious way round this is to move the `else' clause into the `try', i.e., try: <short amount of code that may raise a KeyError> <nontrivial amount of code> except KeyError: <error handler> except ValueError: <error handler> However, I am loath to do this, for two reasons: (i) if I modify the <nontrivial amount of code> block at some point in the future so that it may raise a KeyError, I have to somehow tell this exception from the one that may be generated from the <short amount of code that may raise a KeyError> line. (ii) it moves the error handler for the <short amount of code that may raise a KeyError> bit miles away from the line that might generate the error, making it unclear which code the KeyError error handler is an error handler for. What would be the best way to structure this? -- -David -- http://mail.python.org/mailman/listinfo/python-list