在python中从嵌套的tryexcept块中脱离出来

问题描述 投票:0回答:1

下面的代码有两个tryexcept块。如果里面的代码失败了,就会引发一个异常,但之后还是会继续下一段代码。是否可以一进入except块就从所有块中脱离出来?

try:
    try:
        print(a)
    except:
        print('Inner')
        # should break from here and exit the script
    print(k)
except Exception as e:
    print('Outer')

上面的代码打印的是 Inner 但会因为没有定义 k 也是。该。Outer 不应该也被打印出来。

python try-except
1个回答
1
投票

我想你是想知道 try...except 与可选的 else 包括的条款。

try:
    try:
        print(a)
    except:
        print('Inner')
    else:
        print(k)
except Exception as e:
    print('Outer')

这将打印 Inner 如果 a 没有定义,将打印 Outer 如果 a 定义为


0
投票

这将避免打印出外部异常-&gt。

try:
    try:
        print(a)
    except:
        print('Inner')
    try:
        print(k)
    except:
        print('Inner for k')
except Exception as e:
    print('Outer')

你可以使用一个函数来避免剩余的命令

def printvars():
    try:
        try:
            print(a)
        except:
            print('Inner')
            return 
        try:
            print(k)
        except:
            print('Inner for k')
    except Exception as e:
        print('Outer')

我会避免使用万能的异常,这会导致很多意想不到的结果。

© www.soinside.com 2019 - 2024. All rights reserved.