一个块中有多个尝试代码

发布于 2021-01-29 18:17:29

我在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

这样的事情可能吗?

关注者
0
被浏览
43
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您必须制作以下 单独的 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还有否则,你通常不希望忽略或没有某种形式再次加注或意识理性处理这些拦截。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看