Python:如何使用相同的 try/except 块简化多个语句

Rom*_*'ai 2 python

我有一个这样的代码块:

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
Run Code Online (Sandbox Code Playgroud)

每个方法都可能引发DevOpsError,在某些情况下,我只想忽略异常,或者在其他时候重新引发它。

由于 try/except 块都是相同的,有没有办法简化代码?

编辑:我建议了一个类似的问题,但它没有告诉我如何将参数传递给方法。

DYZ*_*DYZ 5

定义函数并根据需要多次调用它:

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)
Run Code Online (Sandbox Code Playgroud)