如何在 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.1k
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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题