Python 装饰器捕捉异常

来源:互联网 发布:shell 二维数组 编辑:程序博客网 时间:2024/04/29 09:24

背景

需要频繁使用python 对mssql 进程insert into 语句,在此过程中有很多的错误产生(如字段长度不够,一些奇怪字符等),调试起来很不方便,因此写了个装饰器,进行异常捕捉,并将产生错误的插入信息打印出来,这样就能够很直观地发现错在什么地方。

方法

装饰器代码:

def sql_capture(fun):    def add_cap(*args, **kwargs):        try:            fun(*args, **kwargs)        except:            print('Error execute: %s' % fun.__name__)            print(kwargs)            print(traceback.format_exc())            sys.exit()    return add_cap

装饰器的使用:

def basic_info(cur):    user = 'zhangsan'    job = '程序员'    data = (user_edu, job_type)    @sql_capture    def basic_info_to_sql(data):  #只在这个函数中用,因此定义在此函数中        cur.execute(            "INSERT INTO [dbo].[id_card]([user], [job])values(%s,%s)", data        )    basic_info_to_sql(data=data)  # 调用
原创粉丝点击