如何根据收到的错误消息更新数据库?

How to update database according to the error message I get?

我有一个 python 脚本和一个数据库。他们是相连的。当输入错误时,python 脚本会引发一些错误。例如,其中一个函数是统计类。如果少于 2 类,则会引发 OneClassError 并终止程序。还有其他自定义错误,例如 OneClassError。

我的数据库 table 中有一列名为 error_code。它应该根据我得到的具体错误进行更新。例如,如果是 OneClassError,则应该是 401;如果它是 TestClassMsg,它应该是 402。 (为了便于说明,我在这里编造了错误名称。)

目前,我只知道如何通过单个值更新该列。 我想知道如何 使有 401 和 402 的过程自动化,而我不需要指定 401 或 402 - error_code 识别错误并且知道它的代码。

# here is my simplified example:

def count_class_sim(inp_data):
    """
    :param inp_data:  the path of the input data

    :return: pass or fail
    """
    unique_cc, count_cc = np.unique(inp_data[inp_data != 0], return_counts=True) 
    if len(unique_cc) < 2:
        raise OneClassError()
    else: 
        raise TestClassMsg()

data1 = np.array([0,0,1,2,3,3,4,5,5,5])
count_class_sim(data1) # ---- TestClassMsg: TestingTesting

data2 = np.array([0,0,1])
count_class_sim(data2) # ---- OneClassError: Data has only 1 non-zero class - rejected.

这是我的数据库连接代码。请注意,我只知道如何给 error_code 一个值。我想要一种复杂的方法来做到这一点。 谁能告诉我如何修改“set error_code =”命令?

try:
    count_class_sim(data2)
except:
    cur.execute("""update lc_2020 set error_code = 401 
                        where quad_id = '010059' """)
    conn.commit()

由于您有自定义错误,您可以在自定义错误 class 本身中提及您的错误代码。

示例:

class OneClassError(Exception):
    code = 401
    def __init__(self):
        pass
    #remaining logic 
    
try:
    #code that may cause Exception OneClassError
except OneClassError as e:
    print(e.code)

我希望我理解你的查询并回答正确,如果有任何问题请在评论部分提问。