首页 > 解决方案 > 如何在python中对mysql连接进行异常处理

问题描述

我是 python 新手,我想知道如何以正确的方式在 python 中进行异常处理。我想为数据库连接失败引发异常。我也不想在 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)

标签: pythonpython-3.xexception

解决方案


    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()

推荐阅读