首页 > 解决方案 > 我的 raise 语句是否应该在 for 循环内

问题描述

我有一个关于我的代码的快速问题。这个 raise 语句应该放在 for 循环的外部还是内部?如果它在外面,它会得到错误并引发它吗?

try:
    for key, value in options:
        my_list.extend([key, value])
        raise ValueError
except ValueError as e:
    logger.debug('Too many options to unpaack: ', e)

我的代码会更好,还是该raise ValueError行没有添加缩进并与 for 循环的开头对齐?

标签: pythonexception

解决方案


您没有 If 语句,因此对于您当前的代码,它总是在第一个循环中引发错误 - for 循环只会运行一次。raise 错误是不必要的,因为当您用 try 包装它并期望是否有任何 ValueError 时,它会以任何方式捕获异常,因此您可以将其推迟


推荐阅读