Python程式退出: os._exit()和sys.exit()
阿新 • • 發佈:2019-01-07
概述
Python程式有兩種退出方式: os._exit() 和 sys.exit()。我查了一下這兩種方式的區別。
os._exit() 會直接將python程式終止,之後的所有程式碼都不會執行。
sys.exit() 會丟擲一個異常: SystemExit,如果這個異常沒有被捕獲,那麼python直譯器將會退出。如果有捕獲該異常的程式碼,那麼這些程式碼還是會執行。
舉個例子
import os
try:
os._exit(0)
except:
print('Program is dead.')
這個print是不會列印的,因為沒有異常被捕獲。
這裡兩個print都可以列印,因為sys.exit()丟擲了異常。import sys try: sys.exit(0) except: print('Program is dead.') finally: print('clean-up')
結論
使用sys.exit()來退出程式比較優雅,呼叫它能引發SystemExit異常,然後我們可以捕獲這個異常做些清理工作。而os._exit()將python直譯器直接退出,後面的語句都不會執行。
一般情況下用sys.exit()就行;os._exit()可以在os.fork()產生的子程序裡使用。
參考: