我的引发语句应该在for循环内吗

时间:2018-08-30 12:01:51

标签: python exception

我对自己的代码有一个快速的疑问。该升高语句应放在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循环的开始对齐?

1 个答案:

答案 0 :(得分:2)

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