Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #57227

Re: Using "with" context handler, and catching specific exception?

Newsgroups comp.lang.python
Date 2013-10-21 20:27 -0700
References <a2623010-97d3-4a6d-9373-e9979492b84f@googlegroups.com> <mailman.1331.1382411066.18130.python-list@python.org>
Message-ID <829a6777-3410-49ea-8652-ea1e4ceb9cd2@googlegroups.com> (permalink)
Subject Re: Using "with" context handler, and catching specific exception?
From Victor Hooi <victorhooi@gmail.com>

Show all headers | View raw


Hi,

Thanks for the replies =).

Aha, good point about IOError encapsulating other things, I'll use FileNotFoundError, and also add in some other except blocks for the other ones.

And yes, I didn't use the exception object in my sample - I just sort. I'd probably be doing something like this.

    logger.error("Some error message - %s" % e) 

So is the consensus then that I should wrap the "with" in a try-except block?

    try: 
          with open('somefile.log', 'wb') as f: 
              f.write("hello there") 
    except FileNotFoundError as e: 
        logger.error("Uhoh, the file wasn't there - %s" % e) 

Cheers,
Victor

On Tuesday, 22 October 2013 14:04:14 UTC+11, Ben Finney  wrote:
> Victor Hooi <victorhooi@gmail.com> writes:
> 
> 
> 
> >     try:
> 
> >         with open('somefile.log', 'wb' as f:
> 
> >             f.write("hello there")
> 
> >     except IOError as e:
> 
> >         logger.error("Uhoh, the file wasn't there").
> 
> 
> 
> IOError, as Steven D'Aprano points out, is not equivalent to “file not
> 
> found”. Also, you're not doing anything with the exception object, so
> 
> there's no point binding it to the name ‘e’.
> 
> 
> 
> What you want is the specific FileNotFoundError:
> 
> 
> 
>     try:
> 
>         with open('somefile.log', 'wb' as f:
> 
>             f.write("hello there")
> 
>     except FileNotFoundError:
> 
>         logger.error("Uhoh, the file wasn't there").
> 
> 
> 
> See <URL:http://docs.python.org/3/library/exceptions.html#FileNotFoundError>.
> 
> 
> 
> -- 
> 
>  \            “Choose mnemonic identifiers. If you can't remember what |
> 
>   `\                mnemonic means, you've got a problem.” —Larry Wall |
> 
> _o__)                                                                  |
> 
> Ben Finney

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Using "with" context handler, and catching specific exception? Victor Hooi <victorhooi@gmail.com> - 2013-10-21 18:43 -0700
  Re: Using "with" context handler, and catching specific exception? MRAB <python@mrabarnett.plus.com> - 2013-10-22 03:04 +0100
  Re: Using "with" context handler, and catching specific exception? Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-10-22 02:48 +0000
  Re: Using "with" context handler, and catching specific exception? Ben Finney <ben+python@benfinney.id.au> - 2013-10-22 14:04 +1100
    Re: Using "with" context handler, and catching specific exception? Victor Hooi <victorhooi@gmail.com> - 2013-10-21 20:27 -0700
      Re: Using "with" context handler, and catching specific exception? Ben Finney <ben+python@benfinney.id.au> - 2013-10-22 14:53 +1100
        Re: Using "with" context handler, and catching specific exception? Victor Hooi <victorhooi@gmail.com> - 2013-10-22 18:11 -0700

csiph-web