python中有sys.exit()的替代方法吗?

时间:2016-07-21 17:50:39

标签: python python-3.x try-except

try:
 x="blaabla"
 y="nnlfa"   
 if x!=y:
        sys.exit()
    else:
        print("Error!")
except Exception:
    print(Exception)

我不是在问为什么会抛出错误。我知道它引发了exceptions.SystemExit。我想知道是否有另一种退出方式?

2 个答案:

答案 0 :(得分:2)

os._exit()将在没有SystemExit或普通python退出处理的情况下执行低级进程退出。

答案 1 :(得分:1)

这样的一些问题应该伴随着代码背后的真实意图。原因是一些问题应该完全不同地解决。在脚本的正文中,return可用于退出脚本。从另一个角度来看,您可以只记住变量中的情况,并在try/except构造之后实现所需行为。或者您的except可能会测试更明确的例外情况。

下面的代码显示了变量的一个变体。变量被赋予一个函数(这里不调用赋值的函数)。仅在try/except

之后调用该函数(通过变量)
#!python3

import sys

def do_nothing():
    print('Doing nothing.')

def my_exit():
    print('sys.exit() to be called')
    sys.exit()    

fn = do_nothing     # Notice that it is not called. The function is just
                    # given another name.

try:
    x = "blaabla"
    y = "nnlfa"   
    if x != y:
        fn = my_exit    # Here a different function is given the name fn.
                        # You can directly assign fn = sys.exit; the my_exit
                        # just adds the print to visualize.
    else:
        print("Error!")
except Exception:
    print(Exception)

# Now the function is to be called. Or it is equivalent to calling do_nothing(),
# or it is equivalent to calling my_exit(). 
fn()