首页 > 解决方案 > 在 try/except 上进行分支的良好做法

问题描述

假设我的 python 代码基于 try/except 的结果分支如下:

def(x):
    no_errors = False
    try:
        y = f(x)
        no_errors = True
    except ZError:
        no_errors = False
    if no_errors:
        do_stuff(y)
    else:
        do_other_stuff(x)

我的 linter 警告说 y 可能是未定义的。这是不好的做法吗?推荐的修复方法是什么?

标签: pythontry-catch

解决方案


通常,您不会有这样的代码结构。您将在语句中有else和/或finally子句try

def f(x):
    try:
        y = f(x)
    except ZError:
        do_other_stuff(x)
    else:
        do_stuff(y)

推荐阅读