sys.exit()不会终止我的程序

hlx*_*hlx 2 python

如果我尝试成功,我想退出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.
Run Code Online (Sandbox Code Playgroud)

ber*_*eal 10

正如文档所说,sys.exit实际上除了提升之外什么都不SystemExit做,最后你会截获它.你要么sys.exit在try-except之外调用,要么明确地捕获它然后重新加注.


ayc*_*dee 5

你为什么要使用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()
Run Code Online (Sandbox Code Playgroud)

此外,作为使用try/except时的一般规则.抓住你关心的例外.调试一些甚至无法告诉你错误的东西是不可能的.