如何解决使用多线程时如何正确处理此错误
我正在使用napalm库使用GNS3连接到Arista vEOS。我故意输入了错误的IP,只是为了查看我的代码如何处理错误。但是try和except无法按预期工作。
import napalm
import concurrent.futures
def napalm_library(ip):
driver = napalm.get_network_driver(ip[3])
optional = {"transport": "telnet"}
with driver(hostname=ip[0],username=ip[1],password=ip[2],optional_args=optional) as device:
device.load_merge_candidate("test.txt")
device.commit_config()
with concurrent.futures.ThreadPoolExecutor() as executor:
t = executor.submit(napalm_library,['1.1.1.1','username','pass','ios'])
try:
t.result()
except TimeoutError as err1:
print(err1)
相反,它给了我这个TimeoutError事件,我已经尝试捕获TimeoutError。
[WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time,or established connection failed because connected host has failed to respond
Traceback (most recent call last):
File "C:\Python38-32\lib\site-packages\pyeapi\eapilib.py",line 436,in send
self.transport.endheaders(message_body=data)
File "C:\Python38-32\lib\http\client.py",line 1225,in endheaders
self._send_output(message_body,encode_chunked=encode_chunked)
File "C:\Python38-32\lib\http\client.py",line 1004,in _send_output
self.send(msg)
File "C:\Python38-32\lib\http\client.py",line 944,in send
self.connect()
File "C:\Python38-32\lib\http\client.py",line 1392,in connect
super().connect()
File "C:\Python38-32\lib\http\client.py",line 915,in connect
self.sock = self._create_connection(
File "C:\Python38-32\lib\socket.py",line 808,in create_connection
raise err
File "C:\Python38-32\lib\socket.py",line 796,in create_connection
sock.connect(sa)
TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly r
启发我,我应该如何处理错误。
解决方法
检索线程结果时应捕获错误,如下所示:
from concurrent.futures import ThreadPoolExecutor
with ThreadPoolExecutor() as executor:
t = executor.submit(napalm_library,ip_addresses)
try:
t.result()
except TimeoutError as err:
print(err)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。