您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python 2和Python 3中捕获管道中断

在Python 2和Python 3中捕获管道中断

如果您关心的只是管道破裂的错误,那么您可能想抓住socket.error并简单地检查它是否确实是管道破裂的错误

您可以使用errnoPython 2和Python 3中都存在的异常属性来执行此操作,这意味着您不需要使用不同的Python 2 vs. 3逻辑(我认为这样的意图会更加清晰):

import socket
import errno


try:
    do_something()
except socket.error as e:
    if e.errno != errno.EPIPE:
        # Not a broken pipe
        raise
    do_something_about_the_broken_pipe()

如果您关心的不只是管道破裂,那么fourtheye的回答是恰当而惯用的。

python 2022/1/1 18:37:41 有238人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶