Python 我的raise语句是否应该在for循环中

Python 我的raise语句是否应该在for循环中,python,exception,Python,Exception,我有一个关于我的代码的快速问题。这个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语句应该在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)

我的代码是这样更好,还是如果
raisevalueerror
行没有添加缩进并与for循环的开头对齐?

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

,这取决于您想要实现的目标。您发布的代码在这两种变体中对我来说都没有什么意义:)您何时提出异常?谢谢。我觉得这有点奇怪。仍然习惯于在需要时尝试使用raise语句。没问题;),我很高兴我帮助了你