gpt4 book ai didi

python - 在 [Errno 32] Broken pipe 的情况下,Python 3.2 抛出什么样的异常

转载 作者:行者123 更新时间:2023-11-28 18:33:23 26 4
gpt4 key购买 nike

我尝试修补库以捕获[Errno 32] Broken pipe

该库被编码为在 Python 2 和 Python 3 中运行。在 Python 2 中,异常(exception)是

socket.error: [Errno 32] Broken pipe

在 Python >= 3.3 中它是一个

BrokenPipeError: [Errno 32] Broken pipe

在 Python 3.2 中没有实现 BrokenPipeError。有一个 socket.error 但它有 quite a different descriptionin Python 2 .

我的系统上安装了 Debian Stretch,因此安装 Python 3.2 似乎很难检查,我必须在此版本中捕获哪个异常。不过,我不想破坏 Python 3.2 中的库。

因此,如果您能告诉我在 Python 3.2 中捕捉破损管道错误的最具体异常是什么,那将非常有帮助。

最佳答案

从您链接的文档来看,您似乎应该捕获 socket.error。然后检查 .errno 属性是否为 errno.EPIPE,如果是,那么它就是您想要的,如果不是,则重新引发异常。

您链接到 https://travis-ci.org/Mic92/python-mpd2/jobs/105030049 的后续错误看起来它是由您的测试文件引起的 https://github.com/Mic92/python-mpd2/blob/master/test.py#L42模拟整个套接字包(包括 socket.error)。 非常快速地查看代码,您可能只模拟出 socket.socket,其余部分保持原样。

关于python - 在 [Errno 32] Broken pipe 的情况下,Python 3.2 抛出什么样的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34865305/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com