这是引发异常的正确方法吗?(Python)

2024-05-29 05:18:49 发布

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

for i in range(1,1000):
    try:
        x = some_crazy_function(my_parm(i))
        if x in massive:
            raise Exception()
        massive.append(x)
        x = dict(qnother_crazy_functionsl(x.replace('X','Y')))
        x = new_func(x['constant'])[0]
        next.append(x)
    except:
        break

我对python还比较陌生,在维护其他人的代码的同时运行了cross这个片段

在我看来,这是一个可怕的方式退出循环。 这是用python编写代码的公认方法吗?我会习惯的,还是像看上去那么糟糕?你知道吗


Tags: 代码inforifmyexceptionrangefunction
1条回答
网友
1楼 · 发布于 2024-05-29 05:18:49

在最简单的情况下,break将是打破循环的最佳(也是最简单的)方法:

if x in massive:
    break

但是,如果抛出和捕获异常更适合您的用例,我建议首先定义您自己的用户定义的异常类:

class MassiveException(Exception):
    pass

接下来,你可以这样扔:

if x in massive:
    raise MassiveException()

所以就这样抓住它:

except MassiveException:
    ... # do something here

这样做更好,因为它能让你的意图清晰明了,而且也能摆脱“包罗万象”的习惯,除非它会吞下你真正不想吞下的其他例外。你知道吗

相关问题 更多 >

    热门问题