在 Python 中处理与 SQLite 相关的异常

2023-04-04 00:00:00 python 异常 相关

在Python中处理SQLite相关的异常时,我们可以使用sqlite3库。首先,你需要导入库并建立与数据库的连接。```
在这个例子中,我们将在数据库pidancode.db中创建一个表users,并对其进行插入、查询、更新、删除等操作。在每个操作过程中,我们将捕获并处理可能出现的异常。

import sqlite3
from sqlite3 import Error

def create_connection(database):
    try:
        conn = sqlite3.connect(database)
        return conn
    except Error as e:
        print(e)

    return None

def create_table(conn):
    try:
        cursor = conn.cursor()
        cursor.execute("""
        CREATE TABLE IF NOT EXISTS users (
            id INTEGER PRIMARY KEY,
            name TEXT NOT NULL,
            email TEXT NOT NULL UNIQUE
        )
        """)
    except Error as e:
        print(e)

def insert_user(conn, user):
    try:
        cursor = conn.cursor()
        cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", user)
        conn.commit()
    except Error as e:
        print(e)

def query_users(conn):
    try:
        cursor = conn.cursor()
        cursor.execute("SELECT * FROM users")
        rows = cursor.fetchall()

        for row in rows:
            print(row)
    except Error as e:
        print(e)

def update_user(conn, user):
    try:
        cursor = conn.cursor()
        cursor.execute("UPDATE users SET name = ? WHERE id = ?", user)
        conn.commit()
    except Error as e:
        print(e)

def delete_user(conn, id):
    try:
        cursor = conn.cursor()
        cursor.execute("DELETE FROM users WHERE id = ?", (id,))
        conn.commit()
    except Error as e:
        print(e)

if __name__ == '__main__':
    database = "pidancode.db"

    conn = create_connection(database)
    if conn is not None:
        create_table(conn)

        insert_user(conn, ('皮蛋编程', 'contact@pidancode.com'))

        print("查询用户:")
        query_users(conn)

        print("更新用户:")
        update_user(conn, ('皮蛋编程_更新', 1))
        query_users(conn)

        print("删除用户:")
        delete_user(conn, 1)
        query_users(conn)

        conn.close()
    else:
        print("无法建立数据库连接.")

在上述代码中,我们定义了五个函数来处理SQLite数据库的增删改查操作,并在每个函数中使用了try-except语句来捕获并处理可能出现的异常。我们创建了一个示例用户,使用字符串"皮蛋编程"和"contact@pidancode.com"作为用户的名称和邮箱。最后,在if name == 'main'块中,我们依次执行了插入、查询、更新、删除等操作,展示了如何处理SQLite相关的异常。

相关文章