使用装饰器减少try ...finally的重复使用

@util.try_except_bskgk
def added_user_handle(cur, search_time):
    added_user_sql = """

        select userName, FROM_UNIXTIME(createTime) as createTime
        from bskcommon.user
        where date(FROM_UNIXTIME(createTime)) = '%s' and userName != ''
        
    """%(search_time)

    cur.execute(added_user_sql)
    result = cur.fetchall()

    all_msg = {
        'result': util.mat_yes_added_user(result)
    }

    return all_msg
#util.py
def try_except_bsk(func):
def wrap(*args):
try:
conn = linkbsk_db()
cur = conn.cursor()
result = func(cur, *args)
except Exception as e:
result = None

log.logg().error(str(e), exc_info=True)

print str(e)
finally:
cur.close()
conn.close()
return result

return wrap
#不使用装饰器 直接调用函数 在作用上没啥区别

def try_except_bsk(func):
def wrap(*args):
try:
conn = linkbsk_db()
cur = conn.cursor()
       # return func(cur, *args) 不能这样写 因为会有很多连接没有关闭

result = func(cur, *args)
except Exception as e:
result = None     #必须要有的 没有这句, 假如运行错误的话 就会报错《finally部分的result没有赋值》

log.logg().error(str(e), exc_info=True)    #打印出错误的堆栈信息

print str(e)
finally:
cur.close()
conn.close()
return result

return wrap
def test_data(): test_sql = 'select * from user_info limit 1' data = db_queryall_params(util.linkbskgk_db(), test_sql) print data test_data()

 

转载于:https://www.cnblogs.com/wanghaonull/p/6841005.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值