Mike_python小 发表于 2023-9-24 10:28:20

如何使程序忽略报错

是这样的,我写了一个持续爬虫的程序

但是我电脑有时网络不稳定,会导致报错(最近又有一个报错,不知道什么意思python <urlopen error Name or service not known>)

然后他就会结束程序

我试着将所有代码部分try包裹起来
except中什么都不写


但是他报错还是会退出

请问有什么解决办法吗

isdkz 发表于 2023-9-24 10:28:27

为了使程序忽略报错,可以使用Python中的try/except语句块。但是,如果你不想让程序因为报错而停止运行,可以在except语句块中加入pass语句,它表示什么也不做,直接跳过这个异常。下面是一个示例代码:

import urllib.request
import time

while True:
    try:
      response = urllib.request.urlopen("http://www.example.com")
      # 这里是你的代码逻辑
      time.sleep(1)
    except:
      pass


在这个示例中,我们使用了一个while循环来持续运行程序。在try语句块中,我们打开了一个网页,并在except语句块中加入了pass语句,以忽略所有可能的异常。此外,我们还使用了time.sleep()函数来防止程序过于频繁地访问网页。

陶远航 发表于 2023-9-24 10:28:36

要使程序在遇到报错时忽略错误并继续执行,可以在代码中使用异常处理语句,并确保适当地处理异常。

一种常用的方法是将整个爬虫循环放在一个 try-except 块中,以捕获任何异常并进行处理。可以在 except 块中添加适当的代码来处理特定的异常或记录错误信息,然后通过 continue 语句继续下一次循环。

以下是一个示例代码片段,演示了如何处理网络连接错误并继续循环:

import time
import urllib.error

while True:
    try:
      # 爬取网页的代码
      # ...

      # 如果成功爬取数据,则执行相应的操作
      # ...

      # 延时一段时间再进行下一次循环
      time.sleep(1)

    except urllib.error.URLError as e:
      # 处理特定的 URL 错误
      print("发生URL错误:", e)
      continue

    except Exception as e:
      # 处理其他异常
      print("发生其他异常:", e)
      continue


在这个示例中,如果出现 URLError 异常(比如你提到的 urlopen error Name or service not known),程序将打印错误信息并跳过当前循环,继续执行下一次循环。

另外,你还可以根据实际情况在异常处理中添加更多的逻辑,例如记录错误日志、重试连接等。根据具体爬虫的需求和情况,可以进行适当的修改和调整。
如果问题已经解决,请设置最佳答案

Mike_python小 发表于 2023-9-24 10:29:41

陶远航 发表于 2023-9-24 07:28
要使程序在遇到报错时忽略错误并继续执行,可以在代码中使用异常处理语句,并确保适当地处理异常。

一种 ...

我试试加continue

陶远航 发表于 2023-9-24 10:30:06

while True:
    try:
      #do_something
    except:
      pass#回到try

liuhongrun2022 发表于 2023-9-25 06:36:39

try:
    ........
except:
    pass
页: [1]
查看完整版本: 如何使程序忽略报错