V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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 · 2017-10-28 11:41:56 +08:00 · 2802 次点击
    这是一个创建于 2344 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    每天不都是这样的逻辑吗?你还能处理多大的异常?
    zhx1991
        9
    zhx1991  
       2017-10-28 12:53:06 +08:00
    pass 也是一种处理逻辑啊

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

    不过 log 还是要打
    hcnhcn012
        10
    hcnhcn012  
       2017-10-28 13:05:41 +08:00 via iPhone
    Except 意为除非,例外,try 块发生错误,除非是 io 错误才会执行 except 块,在英语上也符合逻辑啊
    ryd994
        12
    ryd994  
       2017-10-28 17:55:01 +08:00 via Android
    @hcnhcn012 except 是 exception 的缩写
    mrdongzhijie
        13
    mrdongzhijie  
       2017-10-28 23:24:31 +08:00
    lihongjie0209
        14
    lihongjie0209  
       2017-10-29 01:50:51 +08:00
    如果这段代码出错后直接 pass, 我觉得可以直接删了这段代码了, 毕竟也没什么用.
    liz2nku
        15
    liz2nku  
       2017-10-29 04:58:20 +08:00 via iPhone
    @lihongjie0209 可以在日志里写个 io 异常哈哈哈哈哈哈
    billgreen1
        16
    billgreen1  
       2017-10-29 10:13:08 +08:00
    @ryd994 我倒是觉得 except 是动词,否则无法解释 except XXXXException as e: blablabla
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2450 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:48 · PVG 23:48 · LAX 08:48 · JFK 11:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.