如何实现仅在fun_a()无错执行时调用fun_b()并在出错时终止脚本
实现fun_a无错才执行fun_b的脚本逻辑
这事儿用Python的异常捕获机制就能轻松搞定,咱们直接上代码和解释:
核心实现代码
import sys def fun_a(): # 替换成你实际的fun_a业务逻辑 # 若要模拟出错,可取消下面这行注释: # raise RuntimeError("fun_a内部出错了") print("fun_a执行完成,无异常") def fun_b(): # 替换成你实际的fun_b业务逻辑 print("fun_b开始执行") try: # 尝试执行fun_a fun_a() except Exception as e: # 捕获fun_a抛出的所有异常,输出指定提示并终止脚本 print("脚本在fun_a()处中断") # 用sys.exit()终止脚本,状态码1表示异常退出 sys.exit(1) # 只有当fun_a无异常时,才会走到这里执行fun_b fun_b()
代码逻辑解释
try-except块的作用:把fun_a()放在try块里,只要它执行时抛出任何异常,就会立刻跳转到except块执行。- 异常处理分支:在
except里,我们先输出你要求的错误提示,然后调用sys.exit(1)终止整个脚本——这里的1是异常退出的状态码,和正常结束的0做区分,方便后续排查问题。 - 正常执行分支:如果
fun_a()全程没抛出异常,就会跳过except块,直接执行后面的fun_b(),完美符合你的需求。
进阶优化:捕获特定异常
如果你不想捕获所有异常(比如只处理fun_a可能抛出的特定错误类型),可以把Exception换成具体的异常类,比如:
try: fun_a() except ValueError as e: print("脚本在fun_a()处中断") sys.exit(1)
这样只有当fun_a抛出ValueError时才会触发中断,其他类型的异常会正常向上抛出,不会被这个块捕获。
内容的提问来源于stack exchange,提问作者saikumarmacha
相关产品推荐
相关产品推荐

