【问题标题】:Multiple exceptions with pythonpython的多个异常
【发布时间】:2021-07-06 20:16:48
【问题描述】:

我正在尝试编写允许我做 4 件事的代码,并且我正在使用 try 和 except。

代码如下:

try:
    for i in lista:
        a = url1 + i
        print(a)
        wget.download(a, '/Users/******/downloads')

except:

    for i in lista:
    b = url2 + i
    wget.download(b, '/Users/*****/downloads')

但我还需要使用 2 个例外。你能解释一下我该怎么做吗?

主要目标是下载文件;如果它仍然不存在,请下载第二个文件,依此类推。

【问题讨论】:

  • “我还需要使用 2 个例外”——哪 2 个例外?为什么?
  • 请更新代码的缩进。 Python 对缩进非常敏感,python 程序员也是如此。
  • 您好,感谢您的及时回复,抱歉缩进,这是复制粘贴问题。我想下载一个文件,如果不可用,请下载第二个,如果不可用,请下载第三个。
  • 您应该明确说明您对期望块中的Exception 的期望。 (你可以写尽可能多的例外,但你是否应该是个问题)。也就是说,我认为你对 except 的作用有错误的想法。也许你需要else
  • Else 不会做我相信的伎俩,因为 else 只会在没有遇到异常的情况下运行。

标签: python try-catch wget except


【解决方案1】:

您可以在except 语句之后指定错误。例如:

urls = [
    "algumsite.com",
    "outrosite.org",
    "sitezinho.com.br"
]

for url in urls:
    try:
        wget.download(url, "path_to_download_folder/")
    except <error/s that can be raised in the previous try block>:
        # code that will be executed if the error were raised

【讨论】:

  • 你好 Mauro,几乎是对的,我是葡萄牙人 XD.... Valeu aí... 会尝试的。非常感谢
  • Poderias por喜爱 dar um exemplo com o meu código? Não estou a entender o que queres dizer com do_stuff(), é uma função?
  • @RebecaCampos translatea isso como um método, ele pode "subir" uma exceção no meio da execução usando raise &lt;nome da exceção&gt;, os blocos 除了 pegam essas exceções e fazem o código fazer outra coisa em vez de parar no meio da execução do programa (essa coisa é definida por ti)
  • Mais uma vez,não querendo abusar,podes exemplificar com có​​digo? o mais parecido com o meu se possível..
猜你喜欢
  • 2020-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-13
  • 2019-04-10
  • 1970-01-01
相关资源
最近更新 更多