在出现异常/错误的情况下如何不停止在python中执行其他功能
我在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
或者,创建一个 装饰器, 然后将该装饰 器
添加到每个函数中。检查Python函数装饰器指南。例如,您的装饰器应为: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