我已经在我的一个程序中做到了这一点,它可以按预期工作,但是我想知道是否以此方式将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'
答案 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