检查python服务端的程序,发现存在错误日志,内容大致如下:本文地址:http://www.04007.cn/article/1238.html,未经许可,不得转载.
python3.11/site-packages/pymysql/connections.py", line 756, self._sock.sendall(data) BrokenPipeError: [Errno 32] Broken pipe During handling of the above exception, another exception occurred:本文地址:http://www.04007.cn/article/1238.html,未经许可,不得转载.
查看错误发生的地方,是在对mysql连接进行拼之后的关闭调用方法中报错。本文地址:http://www.04007.cn/article/1238.html,未经许可,不得转载.
if not connection.ping(False):
connection.close()本文地址:http://www.04007.cn/article/1238.html,未经许可,不得转载.
BrokenPipeError: [Errno 32] Broken pipe主要发生在父进程向子进程发送数据时,子进程在处理数据之前意外关闭。可以使用try-except代码块来捕获BrokenPipeError,并根据需要进行处理。这里导致错误的问题出在python中mysql多线程中,某一个线程已经关闭了连接,导致其它的线程在执行判断和关闭的时候发生了错误。可能增加try来捕获和忽略这个错误,代码如下:本文地址:http://www.04007.cn/article/1238.html,未经许可,不得转载.
try: if not connection.ping(False): connection.close() except Exception as e: pass上面的代码在PyCharm显示中,PyCharm编辑器会报代码异常提示 Too broad exception clause 警告。这是因为PyCharm 认为 Exception 没有指定错误类型,捕获的异常过于宽泛,没有针对性,可以通过指定精确的异常类型来解决。可以在 try 语句前加入一句注释 # noinspection PyBroadException 即可解决此类警告显示。本文地址:http://www.04007.cn/article/1238.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/1238.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
![]() |
![]() |
手机扫码直接打开本页面 |