python之 sys.exit() os._exit() exit() quit()的区别
sys.exit()
sys.exit() :执行该语句会直接退出程序,这也是经常使用的方法,也不需要考虑平台等因素的影响,一般是退出Python程序的首选方法。退出程序引发SystemExit异常,(这是唯一一个不会被认为是错误的异常), 如果没有捕获这个异常将会直接退出程序执行,当然也可以捕获这个异常进行一些其他操作(比如清理工作)SystemExit 并不派生自Exception 所以用Exception捕捉不到该SystemEixt异常,应该使用SystemExit来捕捉。该方法中包含一个参数status,默认为0,表示正常退出, 其他都是异常退出。还可以这样使用:sys.exit(“Goodbye!”); 一般主程序中使用此退出.
os._exit()
os._exit(), 直接退出 Python 解释器, 不抛异常, 不执行相关清理工作,其后的代码都不执行,
其使用会受到平台的限制,但我们常用的Win32平台和基于UNIX的平台不会有所影响, 常用在子进程的退出.
一般来说os._exit() 用于在线程中退出,sys.exit() 用于在主线程中退出。
exit()/quit()
exit()/quit(), 抛出SystemExit异常. 一般在交互式shell中退出时使用.