python如何减少重复的try/catch块?

2024-09-30 03:22:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python的新手,我正在用Python包装器编写一个内部工具的CLI包装器,用一个Python包装器到一个C++ API中,并且发现自己不断地在其中定义具有相同的TIV/catch块的函数,唯一的区别是对API的单一调用。你知道吗

例如。。。你知道吗

px5 = PX5()

try:
  px5.connect()
except PX5Exception:
  for te in px5.errors:
    print(te)

def some_action(some_val):
  try:
    px5.run_method(some_val)
  except PX5Exception:
    for te in px5.errors:
      print(te)
    exit()

def some_other_action(some_val):
  try:
    return px5.run_some_other_method(some_val)
  except PX5Exception:
    for te in px5.errors:
      print(te) 
    exit()

我是不是太过分了?我需要运行的每个命令都可以很容易地包含异常,我希望以友好的方式捕获并显示这些异常,而不是显示整个异常(基本上,如果您不使用API并直接使用CLI,工具本身就会显示这些异常)。你知道吗


Tags: 工具inapiforclidefvalsome
1条回答
网友
1楼 · 发布于 2024-09-30 03:22:54

一种选择是创建包装器方法:

def print_errors(func, *args, **kwargs):
    try:
        return func(*args, **kwargs)
    except PX5Exception:
        for te in px5.errors:
            print(te)

然后,您不必每次都使用try/except块,只需包装:

print_errors(px5.run_some_other_method, some_val)

相关问题 更多 >

    热门问题