0
4

2 に答える 2

1

このページからは、特定の例外を実際にキャッチすることはできないように見えますが、できる限り近くに移動して ( OperationalError )、errno で正確なエラー コードを確認する必要があります。

except MySQLdb.OperationalError as err:

    if err.errno == errorcode.CR_SERVER_LOST:
        # This is the error you're looking for
    else:
        # This is not the error you're looking for
        raise        
于 2013-03-05T13:05:22.877 に答える
1

while True の代わりに、except ブロックで接続して再度コミットすることができます。

def mysql_handling(string):
    global cursor
    try: 
        cursor.execute(string)
        if 'SELECT' not in string:
            db.commit()
    except MySQLdb.MySQLError:
        cursor.close()
                print 'something went wrong!!'
        time.sleep(1)
        cursor = get_cursor()
        cursor.execute(string)
        if 'SELECT' not in string:
            db.commit()
    finally:
            if cursor:
                cursor.close()

または、再試行の最大数を 5 のように保持できます。

于 2013-03-05T13:04:55.147 に答える