1》sys.exit()
>>> import sys
>>> help(sys.exit)
Help on built-in function exit in module sys:
exit(...)
exit([status])
Exit the interpreter by raising SystemExit(status).
If the status is omitted or None, it defaults to zero (i.e., success).
If the status is an integer, it will be used as the system exit status.
If it is another kind of object, it will be printed and the system
exit status will be one (i.e., failure).
执行该语句会直接退出程序,这也是常用的方法,也不须要考虑平台等因素的影响,通常是退出Python程序的首选方法。
退出程序引起SystemExit异常,(这是惟一一个不会被认为是错误的异常), 若是没有捕获这个异常将会直接退出程序执行,
固然也能够捕获这个异常进行一些其余操做(好比清理工做)。
sys.exit()函数是经过抛出异常的方式来终止进程的,也就是说若是它抛出来的异常被捕捉到了的话程序就不会退出了,
而是去进行一些清理工做。
SystemExit 并不派生自Exception 因此用Exception捕捉不到该SystemEixt异常,应该使用SystemExit来捕捉。
该方法中包含一个参数status,默认为0,表示正常退出, 其余都是异常退出。
还能够这样使用:sys.exit("Goodbye!"); 通常主程序中使用此退出.
捕获到SystemExit异常,程序没有直接退出!
song@ubuntu:~$ vi systemExit.py
song@ubuntu:~$ more systemExit.py
#!/usr/bin/python
#!coding:utf-8
import sys
if __name__=='__main__':
try:
sys.exit(825)
except SystemExit,error:
print 'the information of SystemExit:{0}'.format(error)
print "the program doesn't exit!"
print 'Now,the game is over!'
song@ubuntu:~$ python systemExit.py
the information of SystemExit:825
the program doesn't exit!
Now,the game is over!
song@ubuntu:~$
没有捕获到SystemExit异常,程序直接退出,后边的代码不执行!
song@ubuntu:~$ vi systemExit.py
song@ubuntu:~$ more systemExit.py
#!/usr/bin/python
#!coding:utf-8
import sys
if __name__=='__main__':
try:
sys.exit(825)
except Exception,error:
print 'the information of SystemExit:{0}'.format(error)
print "the program doesn't exit!"
print 'Now,the game is over!'
song@ubuntu:~$ python systemExit.py
song@ubuntu:~$
没有捕获到SystemExit异常,输出'Goodbye!'后,程序直接退出,后边的代码不执行!
song@ubuntu:~$ vi systemExit.py
song@ubuntu:~$ more systemExit.py
#!/usr/bin/python
#!coding:utf-8
import sys
if __name__=='__main__':
try:
sys.exit('Goodbye!')
except Exception,error:
print 'the information of SystemExit:{0}'.format(error)
print "the program doesn't exit!"
print 'Now,the game is over!'
song@ubuntu:~$ python systemExit.py
Goodbye!
song@ubuntu:~$
2》os._exit(), 直接退出 Python 解释器, 不抛异常, 不执行相关清理工做,其后的代码都不执行,
其使用会受到平台的限制,但咱们经常使用的Win32平台和基于UNIX的平台不会有所影响, 经常使用在子进程的退出.
通常来讲os._exit() 用于在线程中退出,sys.exit() 用于在主线程中退出。
python
3》exit()/quit(), 抛出SystemExit异常. 通常在交互式shell中退出时使用.shell