鱼C论坛

 找回密码
 立即注册
查看: 2231|回复: 5

如何使程序忽略报错

[复制链接]
发表于 2023-9-24 10:28:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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

然后他就会结束程序

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


但是他报错还是会退出

请问有什么解决办法吗
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

  1. import urllib.request
  2. import time

  3. while True:
  4.     try:
  5.         response = urllib.request.urlopen("http://www.example.com")
  6.         # 这里是你的代码逻辑
  7.         time.sleep(1)
  8.     except:
  9.         pass
复制代码


在这个示例中,我们使用了一个while循环来持续运行程序。在try语句块中,我们打开了一个网页,并在except语句块中加入了pass语句,以忽略所有可能的异常。此外,我们还使用了time.sleep()函数来防止程序过于频繁地访问网页。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-24 10:28:36 | 显示全部楼层
要使程序在遇到报错时忽略错误并继续执行,可以在代码中使用异常处理语句,并确保适当地处理异常。

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

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

  1. import time
  2. import urllib.error

  3. while True:
  4.     try:
  5.         # 爬取网页的代码
  6.         # ...

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

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

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

  15.     except Exception as e:
  16.         # 处理其他异常
  17.         print("发生其他异常:", e)
  18.         continue
复制代码


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

另外,你还可以根据实际情况在异常处理中添加更多的逻辑,例如记录错误日志、重试连接等。根据具体爬虫的需求和情况,可以进行适当的修改和调整。
如果问题已经解决,请设置最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

一种 ...

我试试加continue
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-24 10:30:06 | 显示全部楼层
  1. while True:
  2.     try:
  3.       #do_something
  4.     except:
  5.         pass#回到try
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-25 06:36:39 From FishC Mobile | 显示全部楼层
try:
    ........
except:
    pass
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-22 17:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表