簡體   English   中英

如何在python中為mysql連接執行異常處理

[英]How to do Exception handling for mysql connection in python

我是python的新手,我想知道如何以適當的方式在python中進行異常處理。我想為db連接失敗引發異常。我也不想在try中包含所有代碼行我想引發連接失敗異常。該怎么辦?

try:
    conn = MySQLdb.connect(host="mysql", user="root", passwd="password"
                           , db="database")
    mycursor = conn.cursor()
    query = "INSERT INTO table1(col1,col2,col3)VALUES(%s,%s,%s)"
    val = (x,y,z)
    mycursor.execute(query, val)
    conn.commit()
    conn.close()
    print("Data inserted to db")
except Exception as ex:
    print(ex)
    conn = MySQLdb.connect(host="mysql", user="root", passwd="password"
                           , db="database")
    mycursor = conn.cursor()
    query = "INSERT INTO table1(col1,col2,col3)VALUES(%s,%s,%s)"  
    try:
        mycursor.execute(query, val)
    except MySQLdb.Error, e:
        try:
            print "MySQL Error [%d]: %s" % (e.args[0], e.args[1])
            return None
        except IndexError:
            print "MySQL Error: %s" % str(e)
            return None
    except TypeError, e:
        print(e)
        return None
    except ValueError, e:
        print(e)
        return None
    finally:
        mycursor.close()
        conn.close()

就像是:

connected = False
try:
    conn = MySQLdb.connect(host="mysql", user="root", passwd="password"
                           , db="database")
    connected  = True
except MySQLError as ex:
    print(ex)
if connected:
    mycursor = conn.cursor()
    query = "INSERT INTO table1(col1,col2,col3)VALUES(%s,%s,%s)"
    val = (x,y,z)
    mycursor.execute(query, val)
    conn.commit()
    conn.close()
    print("Data inserted to db")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM