首页 > 解决方案 > 在 if-else 块中使用 try-except

问题描述

我正在尝试在 Python 2.7 中执行以下操作:

if condition_a:
    try:
        b = func_1()
    except:
        b = func_2()
else:
    b = func_2()

有没有更好的方法来写这个避免b = func_2()两次行?我想说的是,如果在 try 块中引发了异常,我们应该转到 else 块中的逻辑。

标签: pythonpython-2.7try-catch

解决方案


不是我最引以为豪的代码,但没有更多上下文,我想不出更干净的代码:

is_b_set = False

if condition_a:
   try:
       b = func_1()
       is_b_set = True
   except:
       # handle/log exception properly
       pass 

b = func_2() if not is_b_set else b

推荐阅读