Python Try Except未跳过错误反而终止程序问题排查
问题根源
你当前代码的核心问题是:调用errorFunction时,你直接写了Script1()、Script2()——这会让脚本在传入函数前就先执行了,异常发生在参数传递环节,根本没进入errorFunction的try-except捕获逻辑里,所以程序直接挂掉。
修复方案
把脚本函数本身(不带括号)传给errorFunction,在函数内部再执行它,这样异常才能被正确捕获:
def errorFunction(func, name): print('Running Script: ' + name) try: func() # 在这里执行传入的脚本函数 except FileNotFoundError: print(f'FileNotFound Error. Script Name: {name}') except Exception as e: print(f'Error. Script Name: {name}, 异常信息: {str(e)}') # 传函数本身,不要加括号执行 errorFunction(Script1, 'Script1') errorFunction(Script2, 'Script2') errorFunction(Script3, 'Script3')
关键修改点
- 传入时直接传
Script1而不是Script1(),避免脚本提前执行,确保执行逻辑落在try-except覆盖范围内 - 把通用异常捕获改成
except Exception as e,可以打印具体异常信息,同时避免捕获系统级退出类的异常(原代码except:写法过于宽泛,不推荐)
内容的提问来源于stack exchange,提问作者user540393
相关产品推荐
相关产品推荐

