标签:python python-3-3
比方说,我有一段不在函数中的代码
x = 5
y = 10
if x > 5:
print("stopping")
在print语句之后我可以放置什么来阻止代码进一步运行? Sys.exit()有效,但会引发一个我不希望在程序中出现的错误.我希望它能够悄悄地停止代码,就像它已经到达主循环的末尾一样.谢谢.
解决方法:
正如JBernardo所指出的,sys.exit()引发了一个异常.这个例外是SystemExit.当它没有被用户代码处理时,解释器干净地退出(调试程序可以调试程序并保持对程序的控制,例如,由于这种机制) – 与os._exit相反(),这是该计划的无条件堕胎.
除Exception外,不会捕获此异常,因为SystemExit不会从Exception继承.但是,它被一个裸的除了:子句捕获.
因此,如果您的程序看到异常,您可能希望通过使用除Exception之外的更少异常:而不是除了:.也就是说,不鼓励捕获所有异常,因为这可能会隐藏真正的问题,所以如果可以的话,通过使except子句(如果有的话)更具体来避免它.
我对这个SystemExit异常机制有用的理解是,用户代码在except子句中找到sys.exit()之后遍历任何finally子句:文件可以干净地关闭等等;然后解释器捕获任何未被用户捕获并退出的SystemExit(调试器将改为捕获它以便保持解释器运行并获取有关退出程序的信息).
标签:python,python-3-3 来源: https://codeday.me/bug/20190714/1454875.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。