如何在 python 中跳出 try 循环?

新手上路,请多包涵

请参考以下代码:

 import sys
def x():
    try:
        y()
    except:
        print("exception caught")
def y():
    sys.exit()
x()

在这种情况下,函数中的 try 循环 x() 将被转移到函数 y() 中,导致异常循环由于 sys.exit() 引发错误而运行我知道,我们可以将其更改为引发 SystemExit 以退出它,但是有没有办法跳出 try 循环,或者有没有更好的方法来编写这段代码?

感谢您阅读并提前致谢。

原文由 Panc4kes 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.2k
2 个回答

您可以编写 except Exception ,它会捕获代码中所有常见的异常,但不会 SystemExit 异常,因为它不继承自 Exception ,继承自- BaseException

原文由 sanyassh 发布,翻译遵循 CC BY-SA 4.0 许可协议

我想你想退出 try 块而不被 except 块捕获,因为这只是

except Exception as e:

代替

except:

这是完整的代码:

 import sys
def x():
    try:
        y()
    except as e:
        if e is SystemExit:
            print("exception caught")
def y():
    raise SystemExit
x()

原文由 Puneet Jain 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题