correct way to catch exception with Python 'with' statement

Ganesh Pal ganesh1pal at gmail.com
Tue Nov 29 01:58:15 EST 2016


Thanks Steve I got what you were trying to explain  , nice learning  from
this conversation , what I was really doing wrong I had broken down my huge
 code into a simple program and had missed out returning False.

On Tue, Nov 29, 2016 at 11:01 AM, Steven D'Aprano <
steve+comp.lang.python at pearwood.info> wrote:

> On Tuesday 29 November 2016 02:18, Ganesh Pal wrote:
>
> > On Mon, Nov 28, 2016 at 1:16 PM, Steven D'Aprano <
> > steve+comp.lang.python at pearwood.info> wrote:
> >
> >>
> >>
> >> There is no need to return True. The function either succeeds, or it
> >> raises an
> >> exception, so there is no need to return any value at all.
> >>
> >>
> >  I returned True here ,because based on the result of this function ,
>
> But the function *always* returns True, or it doesn't return at all: it
> raises.
>
> Unless you have something like:
>
> def func():
>    do some work
>    if condition:
>       return False
>    do more work
>    return True
>
> or similar, there's no point. When you write the documentation for the
> function, if it can only ever return True, then don't worry about returning
> True. Take the built-in methods as an example: dict.update either
> succeeds, or
> it raises an exception. It doesn't return True:
>
>     # this is unnecessary
>     flag = mydict.update(another_dict)
>     if flag:
>         print "update succeeded"
>     else:
>         print "update failed"
>
>
> That cannot happen, because if the update fails, an exception is raised.
>
> The bottom line is, since your function *only* has "return True" and
> doesn't
> have "return False" anywhere, there is no point to the "return True."
>
>
> >  I would want to perform next steps
> >
> >  Example
> >                   if  create_files_append():
> >                        do_somthing()
> >                   else:
> >                          do_next_thing()
>
> That cannot happen. It either returns True, or it raises an exception, so
> the
> "else" clause will not be executed.
>
>
>
>
> --
> Steven
> "Ever since I learned about confirmation bias, I've been seeing
> it everywhere." - Jon Ronson
>
> --
> https://mail.python.org/mailman/listinfo/python-list
>



More information about the Python-list mailing list