说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
SystemExit 是 Python 中的一个异常类型,通常用于通知 Python 解释器退出程序。当 Python 解释器遇到 SystemExit 异常时,它会尝试退出程序并停止执行。通常情况下,SystemExit 异常是由调用 sys.exit() 函数或者在顶层代码中执行 raise SystemExit() 语句而引发的。
下面是一些可能导致 SystemExit 异常的情况:
使用 sys.exit()
函数退出程序:
sys.exit()
是 Python 标准库中的一个函数,用于退出当前程序。当调用 sys.exit() 时,Python 解释器会引发 SystemExit 异常,从而终止程序的执行。
import sys
print("Before sys.exit()")
sys.exit() # 这里会引发 SystemExit 异常
print("After sys.exit()") # 这行代码不会执行
在顶层代码中使用 raise SystemExit()
:
在顶层代码中使用 raise SystemExit()
语句同样会引发 SystemExit 异常,从而退出程序。
print("Before raising SystemExit")
raise SystemExit() # 这里会引发 SystemExit 异常
print("After raising SystemExit") # 这行代码不会执行
需要注意的是,与其他异常不同,SystemExit 异常通常被 Python 解释器视为一种正常的程序终止方式。因此,一般情况下,不会显示 SystemExit 异常的回溯信息,而是直接退出程序。
此异常由 sys.exit() 函数引发。 它继承自 BaseException 而不是 Exception 以确保不会被处理 Exception 的代码意外捕获。 这允许此异常正确地向上传播并导致解释器退出。 如果它未被处理,则 Python 解释器就将退出;不会打印任何栈回溯信息。 构造器接受的可选参数与传递给 sys.exit() 的相同。 如果该值为一个整数,则它指明系统退出状态码(会传递给 C 的 exit() 函数);如果该值为 None,则退出状态码为零;如果该值为其他类型(例如字符串),则会打印对象的值并将退出状态码设为一。
对 sys.exit() 的调用会被转换为一个异常以便能执行清理处理程序 (try 语句的 finally 子句),并且使得调试器可以执行一段脚本而不必冒失去控制的风险。 如果绝对确实地需要立即退出(例如在调用 os.fork() 之后的子进程中)则可使用 os._exit().
有一个 code
属性,传给构造器的退出状态码或错误信息(默认为 None)。
更新时间:2024-04-10 07:11:38 标签:python 异常 系统