即使发生错误,如何让代码继续运行

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")

【讨论】:

很有效,我一直在研究这个问题

以上是关于即使发生错误,如何让代码继续运行的主要内容,如果未能解决你的问题,请参考以下文章

异常处理

Python-即使出现一些错误,如何继续我的测试脚本

即使未达到评论数量,如何告诉 Python 继续提取?

继续在后台运行代码以向单个用户发送通知

即使空间增加,Errno::ENOSPC 也会继续发生

我的pycharm没有报错,但代码就是运行不出来,这是怎么回事?