No return to the parent function

Joan Miller peloko45 at gmail.com
Tue Feb 2 18:00:45 CET 2010


On 2 feb, 16:55, Arnaud Delobelle <arno... at googlemail.com> wrote:
> Joan Miller <pelok... at 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

Yes, that is it. It was more simple that I had thinked, thanks!



More information about the Python-list mailing list