代码之家  ›  专栏  ›  技术社区  ›  Apurva Kunkulol

在sys中拦截Python调用意味着什么。退出文档?

  •  4
  • Apurva Kunkulol  · 技术社区  · 7 年前

    在Python中 documentation ,据说可以在外部级别拦截退出调用。那么“在外部水平上拦截”实际上意味着什么呢? 更具体地说,拦截通话是什么意思?

    1 回复  |  直到 7 年前
        1
  •  5
  •   Dimitris Fasarakis Hilliard    7 年前

    这意味着 except SystemExit 将捕获引发的异常,从而在退出Python时拦截尝试的调用。 sys.exit 通过提高 SystemExit ,您可以处理。

    使用适当的 except 条款:

    from sys import exit
    try:
        exit("Exiting")
    except SystemExit as e:
        print("Well, no you're not.")
    

    效果很好,继续执行。你拦截了它。

    正如@chepner所指出的,通话没有被拦截;呼叫 exit 已完成。生成的异常被您提供的except处理程序截获。