iT邦幫忙

2021 iThome 鐵人賽

DAY 12
0
自我挑戰組

轉職軟體工程師的543系列 第 12

【Day 12】Python os._exit()和 sys.exit()

  • 分享至 

  • xImage
  •  

Python的程式有2種退出方式:os._exit(), sys.exit()

os._exit()會直接將python程式終止,之後的所有程式碼都不會繼續執行。
os._exit() 一般而言運用於線上程中退出。

sys.exit()會引發一個異常:SystemExit,如果這個異常沒有被捕獲,
那麼python直譯器將會退出。如果有捕獲此異常的程式碼,那麼這些程式碼還是會執行。
捕獲這個異常可以做一些額外的清理工作。
0為正常退出,其他數值(1-127)為不正常,可拋異常事件供捕獲。
sys.exit() 用於在主執行緒中退出。

在python排程,如果在子執行緒使用sys.exit(),就只能退出子執行緒,主執行緒仍然還是可以運作;
如果要在子執行緒中退出整個程序,則須使用os._exit(),才可以實現整個程序的退出。

import os, sys
try:
    sys.exit(0) 
except:
    print('die')
finally:
    print('cleanup') 
    
    
try:
    os._exit(0) 
except:
    print('die')
    print('os.exit') #不列印直接退出

上一篇
【Day 11】Python os.path模組
下一篇
【Day 13】jQuery下載安裝
系列文
轉職軟體工程師的54330
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言