编程语言
首页 > 编程语言> > 停止Python代码没有错误

停止Python代码没有错误

作者:互联网

比方说,我有一段不在函数中的代码

x = 5
y = 10
if x > 5:
    print("stopping")

在print语句之后我可以放置什么来阻止代码进一步运行? Sys.exit()有效,但会引发一个我不希望在程序中出现的错误.我希望它能够悄悄地停止代码,就像它已经到达主循环的末尾一样.谢谢.

解决方法:

正如JBernardo所指出的,sys.exit()引发了一个异常.这个例外是SystemExit.当它没有被用户代码处理时,解释器干净地退出(调试程序可以调试程序并保持对程序的控制,例如,由于这种机制) – 与os._exit相反(),这是该计划的无条件堕胎.

除Exception外,不会捕获此异常,因为SystemExit不会从Exception继承.但是,它被一个裸的除了:子句捕获.

因此,如果您的程序看到异常,您可能希望通过使用除Exception之外的更少异常:而不是除了:.也就是说,不鼓励捕获所有异常,因为这可能会隐藏真正的问题,所以如果可以的话,通过使e​​xcept子句(如果有的话)更具体来避免它.

我对这个SystemExit异常机制有用的理解是,用户代码在except子句中找到sys.exit()之后遍历任何finally子句:文件可以干净地关闭等等;然后解释器捕获任何未被用户捕获并退出的SystemExit(调试器将改为捕获它以便保持解释器运行并获取有关退出程序的信息).

标签:python,python-3-3
来源: https://codeday.me/bug/20190714/1454875.html