一块中有多个尝试代码

数字门:

我在try块中的代码有问题。为了简单起见,这是我的代码:

try:
    code a
    code b #if b fails, it should ignore, and go to c.
    code c #if c fails, go to d
    code d
except:
    pass

这样的事情可能吗?

马丁·彼得斯(Martijn Pieters):

您必须制作以下单独的 try块:

try:
    code a
except ExplicitException:
    pass

try:
    code b
except ExplicitException:
    try:
        code c
    except ExplicitException:
        try:
            code d
        except ExplicitException:
            pass

这是假设你想运行code c 如果code b失败。

如果您code c 无论如何都要运行,则需要try一个接一个地放置这些块:

try:
    code a
except ExplicitException:
    pass

try:
    code b
except ExplicitException:
    pass

try:
    code c
except ExplicitException:
    pass

try:
    code d
except ExplicitException:
    pass

我在except ExplicitException这里使用是因为盲目地忽略所有异常永远不是一个好习惯。你会被忽略MemoryErrorKeyboardInterrupt并且SystemExit还有否则,你通常不希望忽略或没有某种形式再次加注或意识理性处理这些拦截。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章