Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.xs4all.nl!newsfeed2.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.017 X-Spam-Evidence: '*H*': 0.97; '*S*': 0.00; 'means,': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'try:': 0.09; 'finney': 0.16; 'identifiers.': 0.16; 'ioerror': 0.16; 'ioerror,': 0.16; 'received:80.91.229.3': 0.16; 'received:plane.gmane.org': 0.16; 'subject:exception': 0.16; 'exception': 0.16; 'header:User- Agent:1': 0.23; 'equivalent': 0.26; 'header:X-Complaints-To:1': 0.27; 'point': 0.28; 'points': 0.29; "d'aprano": 0.31; 'steven': 0.31; 'writes:': 0.31; 'file': 0.32; 'url:python': 0.33; 'subject:with': 0.35; "can't": 0.35; 'except': 0.35; 'object,': 0.36; 'doing': 0.36; 'subject:?': 0.36; 'url:org': 0.36; 'skip:o 20': 0.38; 'ben': 0.38; 'url:library': 0.38; 'to:addr:python- list': 0.38; 'anything': 0.39; 'subject:" ': 0.39; 'to:addr:python.org': 0.39; 'received:org': 0.40; 'url:3': 0.61; "you're": 0.61; "you've": 0.63; 'name': 0.63; 'wall': 0.65; 'subject:Using': 0.84; 'victor': 0.84 X-Injected-Via-Gmane: http://gmane.org/ To: python-list@python.org From: Ben Finney Subject: Re: Using "with" context handler, and catching specific exception? Date: Tue, 22 Oct 2013 14:04:14 +1100 References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Gmane-NNTP-Posting-Host: rasputin.madmonks.org X-Public-Key-ID: 0xAC128405 X-Public-Key-Fingerprint: 517C F14B B2F3 98B0 CB35 4855 B8B2 4C06 AC12 8405 X-Public-Key-URL: http://www.benfinney.id.au/contact/bfinney-gpg.asc X-Post-From: Ben Finney User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux) Cancel-Lock: sha1:sUwlBSMrUKzW0E7GfjfWG7Lo0v0= X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 28 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1382411066 news.xs4all.nl 15876 [2001:888:2000:d::a6]:50703 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:57224 Victor Hooi 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 . -- \ “Choose mnemonic identifiers. If you can't remember what | `\ mnemonic means, you've got a problem.” —Larry Wall | _o__) | Ben Finney