[英]sys.exit() does not terminate my program
如果我嘗試成功,我想退出Python腳本。 我的代碼不會退出並繼續執行腳本的其余部分。
如果我運行python myscript.py --help
,我需要退出腳本。 如果我運行python myscript.py
我需要執行except
部分。
try:
if sys.argv[1] == '--help' or sys.argv[1] == '-help' or \
sys.argv[1] == '-h' or sys.argv[1] == '--h':
print "NAME"
sys.exit("Usage : python go.py")
except:
#REST OF THE CODE.
正如文檔所說 , sys.exit
實際上除了提升SystemExit
什么也沒做,而你最終會截獲它。 您可以在try-except之外調用sys.exit
,也可以顯式捕獲它,然后重新引發。
你為什么要使用try / except塊? 就像bereal說的那樣,你正在捕捉所有異常並隱藏問題。 try / except塊用於特殊情況。 不是備用代碼路徑。
def main():
# main code block
if sys.argv[1] == '--help' or sys.argv[1] == '-help' or \
sys.argv[1] == '-h' or sys.argv[1] == '--h':
print "Help text"
else:
main()
此外,作為使用try / except時的一般規則。 抓住你關心的例外。 調試一些甚至無法告訴你錯誤的東西是不可能的。
作為一般性評論,也許你應該看看使用argparse。 http://docs.python.org/library/argparse.html#module-argparse使用argparse,你不必手動檢查argv數組; argparse將為您完成所有工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.