2

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 を引き起こし、colleen が言ったように行ったり来たりします

4

2 に答える 2

1

ええと、あなたはそれをexcept節でデクリメントし、次にtryでインクリメントしているので、ただ行ったり来たりしています....最初に失敗すると、失敗し続けます。

例えば

try:
1
try:
1+1=2 ->fail->id-1=1
try:
1+1=2 ->fail->id-1=1
try:
1+1=2 ->fail->id-1=1
try:
1+1=2 ->fail->id-1=1
....

失敗した ID をスキップしようとしている場合は、減分しないでください。

于 2012-11-20T18:55:16.463 に答える
0

except 句でデクリメントする場合、特別な動作はありません。

同じ例外がスローされ続けて減少し続けるためですか?同じエラーコードを取得したときにのみ印刷していることに気付きましたが、「Fehlercode: errorcode」の印刷を取得したことがありますか?

于 2012-11-20T18:56:27.603 に答える