【发布时间】:2012-11-08 22:11:54
【问题描述】:
在 except 子句中减少变量时有什么特殊行为吗?
sid 一直递增,直到它第一次进入异常子句,然后在 for 循环的剩余时间内保持相同的值。
105 次尝试中有 7 次抛出异常
没有打印输出“Fehlercode:”,错误代码
这是我的代码:
for bid in range(bidStart, bidEnd + 1):
for syn in getSynsProBeitrag(bid):
try:
sid += 1
query = "INSERT INTO zuord (bid, hid, sid) VALUES(%s, %s, %s)"
cursor.execute(query, [bid, hid, sid])
query2 = "INSERT INTO synonyme (synonym) VALUE (%s)"
cursor.execute(query2, syn)
except MySQLdb.IntegrityError, message:
errorcode = message[0]
if errorcode == 1062:
sid -= 1
print sid
else:
print "Fehlercode:", errorcode
已解决:在 query2 抛出它的第一个异常后,第一个查询也会导致(相同的)IntegrityError,然后它就像科琳所说的那样来回移动
【问题讨论】:
标签: python increment behavior except decrement