Joan Miller <pelok...@gmail.com> writes: > I've a main function called i.e. *foo()* which has a block of code > that is repetead several times (for the error catching code and error > reporting), but that code has a return to exit of *foo()* > > ----------- > foo(): > ... > if self.background: > _log.exception(str(error)) > return ReturnCode.ERROR, None > else: > raise NameError(error) > > ----------- > > So I would tu put that code block into a separated function (*throw() > *), but the problem is that it returns to the parent function (foo()). > How to solve it?
If I understand correctly, you can simply do this: def throw(...): if ...: ... return ... else: raise ... def foo(): ... return throw(...) HTH I.e. if throw returns something, foo returns it as well. If throw raises an exception, it will go through foo. Is this what you want? -- Arnaud -- http://mail.python.org/mailman/listinfo/python-list