Python日志如何提取PYODBC异常的纯消息而非错误代码?
提取Teradata pyodbc异常的纯错误消息
不用复杂的字符串替换或截取,pyodbc的异常对象本身就提供了获取纯错误消息的可靠途径,针对Teradata ODBC驱动,可按以下方式处理:
捕获
pyodbc.Error异常时,异常实例的args属性是一个元组,Teradata驱动通常会将纯错误描述放在第二个元素中:import pyodbc import logging logging.basicConfig(level=logging.ERROR) try: # 你的数据库操作代码 conn = pyodbc.connect(...) cursor = conn.cursor() cursor.execute("SELECT WorkflowStatu FROM ADW_STUDIO_FSCSO_TABLES.BI_TP_And_Event_Base_Details") except pyodbc.Error as e: # 提取纯错误消息 if len(e.args) >= 2: error_msg = e.args[1] else: # 兼容少数异常格式,从第一个元素中剥离冗余前缀 error_msg = e.args[0].split(']')[-1].strip() logging.error(error_msg)这种方法直接利用ODBC驱动返回的结构化错误信息,比硬编码字符串替换更适配Teradata的各类异常场景。
注意:Teradata驱动的
args元组格式是稳定的——第一个元素包含带错误代码、驱动名称的完整错误头,第二个元素就是业务相关的纯错误描述。
内容的提问来源于stack exchange,提问作者WannabeDev
相关产品推荐
相关产品推荐

