即使发生错误,如何让代码继续运行
Posted
技术标签:
【中文标题】即使发生错误,如何让代码继续运行【英文标题】:How to get code to keep running even if error occurs 【发布时间】:2021-10-12 07:00:10 【问题描述】:我目前使用的代码
from pythonping import ping
import random
while 1:
d1 = (random.randrange(1,255))
d2 = (random.randrange(1,255))
d3 = (random.randrange(1,255))
d4 = (random.randrange(1,255))
h = f'd1.d2.d3.d4'
ping(h, verbose=True)
输出是
请求超时 请求超时 ....
请求超时
Traceback(最近一次调用最后一次):文件 “C:\Users\dwatn\Documents\document1.py”,第 17 行,在 ping(h, verbose=True) 文件 "C:\Users\dwatn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\pythonping_init_.py", 第 78 行,在 ping comm.run(match_payloads=match) 文件 "C:\Users\dwatn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\pythonping\executor.py", 第 335 行,运行中 payload_bytes_sent = self.send_ping(identifier, seq, payload) 文件 "C:\Users\dwatn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\pythonping\executor.py", 第 277 行,在 send_ping 中 self.socket.send(i.packet) 文件“C:\Users\dwatn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\pythonping\network.py” , 第 56 行,在发送中 self.socket.sendto(packet, (self.destination, 0)) OSError: [WinError 10051] 尝试对无法访问的套接字操作 网络
【问题讨论】:
这会生成带有无效网络部分的IP,并且在这种情况下经过几次迭代后,您的意思是这样吗? 是的,有没有办法让它运行代码或其他东西 【参考方案1】:你可以使用try catch来处理异常。
from pythonping import ping
import random
while 1:
d1 = (random.randrange(1,255))
d2 = (random.randrange(1,255))
d3 = (random.randrange(1,255))
d4 = (random.randrange(1,255))
h = f'd1.d2.d3.d4'
try:
ping(h, verbose=True)
except:
print("invalid ip")
【讨论】:
很有效,我一直在研究这个问题以上是关于即使发生错误,如何让代码继续运行的主要内容,如果未能解决你的问题,请参考以下文章