python exit出錯是什麼原因

coyan發表於2021-09-11

python exit出錯是什麼原因

Python程式有兩種退出方式: os._exit() 和 sys.exit()。我查了一下這兩種方式的區別。

os._exit() 會直接將python程式終止,之後的所有程式碼都不會執行。

sys.exit() 會丟擲一個異常: SystemExit,如果這個異常沒有被捕獲,那麼python直譯器將會退出。如果有捕獲該異常的程式碼,那麼這些

程式碼還是會執行。

例如

import os
 
try:
    os._exit(0)
except:
    print('Program is dead.')

這個print是不會列印的,因為沒有異常被捕獲。

import sys
 
try:
    sys.exit(0)
except:
    print('Program is dead.')
finally:
    print('clean-up')

這裡兩個print都可以列印,因為sys.exit()丟擲了異常。

結論

使用sys.exit()來退出程式比較優雅,呼叫它能引發SystemExit異常,然後我們可以捕獲這個異常做些清理工作。而os._exit()將python解

釋器直接退出,後面的語句都不會執行。一般情況下用sys.exit()就行;os._exit()可以在os.fork()產生的子程式裡使用。

推薦學習《》。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2236/viewspace-2834841/,如需轉載,請註明出處,否則將追究法律責任。

相關文章