V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
miniyao
V2EX  ›  Python

try ... except (IOError) ... except: pass 这样的代码结构,符合语法逻辑吗?

  •  
  •   miniyao · Oct 28, 2017 · 3519 views
    This topic created in 3116 days ago, the information mentioned may be changed or developed.

    希望这段代码执行的时候:如果遇到 IOError 的时候,print('IOError')。如果没有遇到 IOError,do something 出错(任何错误)也直接 pass。

    try:
        
        do something
    
    except IOError:
    
        print('IOError')
    
    except:
    
        pass
    
    16 replies    2017-10-29 10:13:08 +08:00
    e9e499d78f
        1
    e9e499d78f  
       Oct 28, 2017   ❤️ 1
    符合语法逻辑
    lonenol
        2
    lonenol  
       Oct 28, 2017
    不都是这么干的吗..
    ysc3839
        3
    ysc3839  
       Oct 28, 2017 via Android
    看上去没问题……
    billgreen1
        4
    billgreen1  
       Oct 28, 2017
    没问题,不过最好不要用 print, 用 log
    iFlicker
        5
    iFlicker  
       Oct 28, 2017
    @billgreen1 封装一个类似于 android 的 Log.e("",""); ?
    Kilerd
        6
    Kilerd  
       Oct 28, 2017
    except IOError as e:

    可以捕捉到更加具体的异常信息
    wwqgtxx
        7
    wwqgtxx  
       Oct 28, 2017 via iPhone   ❤️ 1
    最后最好是 except Exception,要不然连 SystemExit 这种 BaesException 也会被 pass 掉
    flyingghost
        8
    flyingghost  
       Oct 28, 2017   ❤️ 3
    干活()
    try:
    下班()
    except 产品经理改需求:
    掏出菜刀摆桌上走人()
    except:
    pass
    继续干活()

    每天不都是这样的逻辑吗?你还能处理多大的异常?
    zhx1991
        9
    zhx1991  
       Oct 28, 2017
    pass 也是一种处理逻辑啊

    有时候异常上层不一定要知道, 上层很可能完全不关心这里是不是错误了

    不过 log 还是要打
    hcnhcn012
        10
    hcnhcn012  
       Oct 28, 2017 via iPhone
    Except 意为除非,例外,try 块发生错误,除非是 io 错误才会执行 except 块,在英语上也符合逻辑啊
    ryd994
        12
    ryd994  
       Oct 28, 2017 via Android
    @hcnhcn012 except 是 exception 的缩写
    mrdongzhijie
        13
    mrdongzhijie  
       Oct 28, 2017
    lihongjie0209
        14
    lihongjie0209  
       Oct 29, 2017
    如果这段代码出错后直接 pass, 我觉得可以直接删了这段代码了, 毕竟也没什么用.
    liz2nku
        15
    liz2nku  
       Oct 29, 2017 via iPhone
    @lihongjie0209 可以在日志里写个 io 异常哈哈哈哈哈哈
    billgreen1
        16
    billgreen1  
       Oct 29, 2017
    @ryd994 我倒是觉得 except 是动词,否则无法解释 except XXXXException as e: blablabla
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3067 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 60ms · UTC 12:57 · PVG 20:57 · LAX 05:57 · JFK 08:57
    ♥ Do have faith in what you're doing.