exit(),os._exit(),sys.exit() 都能退出当前脚本的执行。
差别在于 os._exit() 直接退出;exit() 和 sys.exit() 会抛出异常。当然,如果不捕获异常,看起来的效果和 os._exit() 一样,不会有任何意外的信息,不过当然可以用来做一些清理的工作。
try:
for i in range(10):
time.sleep(0.5)
print(i)
if i > 4:
#sys.exit()
quit()
except:
#traceback.print_exc()
print(sys.exc_info()[0])
使用 sys.exc_info 能获得抛出的异常的类型为 SystemExit.
exit() 与 sys.exit() 的差别在于,如果使用 pyinstaller.exe 将脚本打包成可执行程序。运行打包后的可执行程序, 此时 exit() 将抛出
NameError: name 'exit' is not defined 异常;而不再是 SystemExit 异常。不同于 SystemExit 异常,此异常的信息会打印出来。同样的,适用于 quit().
另外,可使用 traceback.print_exc() 来打印抛出异常的详细信息。