gpt4 book ai didi

python - 在异常/错误的情况下如何不停止 python 中其他函数的执行

转载 作者:太空宇宙 更新时间:2023-11-03 13:35:44 24 4
gpt4 key购买 nike

我有一个 python 脚本,其工作方式如下所示。每个函数执行完全不同的任务并且彼此不相关。我的问题是,如果 function2() 在执行过程中出现问题,那么 function3()function4()function5( ) 不会执行。我知道你会说通过捕获异常来处理这个问题(try..except)但是我必须捕获所有不是我正在寻找的异常。简而言之,如果任何功能出现问题,我该如何编码而不影响我的其他功能。理想情况下,它应该排除有问题的功能,让其他功能执行。

def function1():
some code

def function2():
some code

def function3():
some code

def function4():
some code

def function5():
some code

if __name__ == '__main__':
function1()
function2()
function3()
function4()
function5()

最佳答案

无需编写多个try/except。创建一个函数列表并执行它们。例如,你的代码应该是这样的:

if __name__ == '__main__':
func_list = [function1, function2, function3, function4, function5]

for my_func in func_list:
try:
my_func()
except:
pass

或者,创建一个装饰器并将该装饰器添加到您的每个函数中。检查A guide to Python's function decorators .例如,你的装饰器应该是这样的:

def wrap_error(func):
def func_wrapper(*args, **kwargs):
try:
return func(*args, **kwargs)
except:
pass
return func_wrapper

现在用你的函数定义添加这个装饰器:

@wrap_error
def function1():
some code

添加了这个装饰器的函数不会引发任何Exception

关于python - 在异常/错误的情况下如何不停止 python 中其他函数的执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40102786/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com