1 进程的退出函数的基础语法
1.1 进程的退出函数
进程的退出含有有os._exit([status])和sys.exit([status])两种,从数据包来看,该退出模块仅在linux或者unix系统下可用,windows系统下没有该模块
功能:退出一个进程
参数:表示进程的退出状态,0表示进程正常退出,非0表示异常退出。
区别:
(1)
os._exit() 直接将python程序终止,退出python解释器,其后代码都不会执行
sys.exit() 抛出SystemExit异常,如果该异常没有被捕获,则python解释器将会退出,捕获这个异常可以做一些额外的清理工作,0为正常退出,其他数值(1~127)表示非正常退出,可抛出异常供捕获。
(2)
os._exit() 参数为返回代码
sys.exit() 参数可传入字符串,在退出时打印一下字符串
(3)
一般情况下使用sys.exit()即可,而fork语句生成的的子进程中使用os._exit()
一般情况下sys.exit()用于主线程退出,os._exit()用于在线程中退出
1.2 退出函数的基础示例
示例1
import sys try: sys.exit(0) except: print('die') finally: print('cleanup')
运行结果
die
cleanup
示例2
import os try: os._exit(0) except: print('die') print('os.exit')
运行后终端没有显示输出
import os, sys try: os._exit('0') except: print('die') print('os.exit')
运行结果
die
os.exit
实际上,只要是 os._exit(0) 中的参数值不为int型0,运行结果都是 die \ os.exit
2 退出函数的基本应用
os._exit()函数
import os a = 0 while a < 10: print("a=", a) a += 1 if a == 5: os._exit(0) # 只能是数值,不可以传入字符串 如果传入字符串,则会报错(TypeError: an integer is required (got type str))
print("运行结束")
运行结果
a= 0 a= 1 a= 2 a= 3 a= 4
sys.exit()函数
import sys a = 0 while a < 10: print("a=",a) a += 1 try: if a == 5: sys.exit("exit the process")#该函数可以传入字符串 except SystemExit as e: print(e) print("运行结束")
运行结果
a= 0 a= 1 a= 2 a= 3 a= 4 exit the process a= 5 a= 6 a= 7 a= 8 a= 9 运行结束