使用try作为条件会导致问题吗?

时间:2018-12-04 14:18:32

标签: python try-catch

我已经在我的一个程序中做到了这一点,它可以按预期工作,但是我想知道是否以此方式将try用作条件会导致问题(大约三分之一的时间引发异常)

try:
    # This line create a condition by raising or not the error
    next(external_data.cursor.execute(statement))
    return 'C'
except StopIteration:
    return 'F'

2 个答案:

答案 0 :(得分:1)

通常,不会。 AFAIK Python甚至在内部使用异常来打破循环。唯一可能发生的是,您捕获到异常,而这些异常本应被提出。

答案 1 :(得分:0)

在您的try / except中,我没有看到任何问题。每当next(...行失败时,它将跳过return 'C'

我个人会这样:

try:
    next(external_data.cursor.execute("SELECT * FROM NOTICE80_SYRACUSE_2017 WHERE SIREN = '" + siren + "'"))
except StopIteration:
    status = 'F'
else:
    status = 'C'
finally:
    return status

或:

status = 'C'

try:
    next(external_data.cursor.execute("SELECT * FROM NOTICE80_SYRACUSE_2017 WHERE SIREN = '" + siren + "'"))
except StopIteration:
    status = 'F'

return status