我有这样一个代码块:
try:
gitlab.gl_delete_project(gitlab_project_id)
except DevOpsError as e:
if e.status_code != 404:
raise e
try:
redmine.rm_delete_project(redmine_project_id)
except DevOpsError as e:
if e.status_code != 404:
raise e
try:
if harbor_project_id is not None:
harbor.hb_delete_project(harbor_project_id)
except DevOpsError as e:
if e.status_code != 404:
raise e
每个方法都可能引发 DevOpsError
,在某些情况下,我只想忽略异常,或者在其他时间重新引发它。
既然 try/except block 都是相同的,有没有办法简化代码?
编辑:有人向我提出了类似的问题,但它没有告诉我如何将参数传递给方法。
最佳答案
定义函数并根据需要多次调用它:
def try_to_delete(delete_method, object):
try:
delete_method(object)
except DevOpsError as e:
if e.status_code != 404:
raise e
try_to_delete(gitlab.gl_delete_project, gitlab_project_id)
try_to_delete(redmine.rm_delete_project, redmine_project_id)
if harbor_project_id is not None:
try_to_delete(harbor.hb_delete_project, harbor_project_id)
关于Python:如何使用同一个 try/except block 简化多个语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65016810/