编写一个特定的装饰器,当程序发生异常时可以继续执行后续操作:

# 定义一个修饰器:当程序发生异常的时候保存其日志信息
def save_exception_log(func):def wrapper(*args, **kw):try:return func(*args, **kw)except:# 1.获取原始功能函数的path参数值path = args[0]# 2.保存日志操作print("保存日志操作")return wrapper@save_exception_log
def func_test(path:str, param1:str, param2:str)->None:"""测试功能."""print("path:"+path)print("param1:"+param1)print("param2:"+param2)a=1/0func_test("文件路径","参数1","参数2")

执行上述代码,其输出结果为:

path:文件路径
param1:参数1
param2:参数2
保存日志操作

如果将上述func_test方法调用的传参方式进行了下述修改,则修饰器中的获取函数参数值的方法也要做想应的调整:

# 定义一个修饰器:当程序发生异常的时候保存其日志信息
def save_exception_log

Python使用装饰器捕获异常相关推荐

  1. Python使用装饰器捕获异常,并写入日志,不中断进程

    使用如下代码,可以为每一个函数都添加一个try except,当函数出现错误的时候,同时不会中断继续进行,而是会写入error.log文件中 import loggingdef catch_error ...

  2. Python之装饰器

    Python之装饰器 在不修改函数调用方式的前提下,也不能修改函数内部源代码!!!! 例如: 在每个季度公司发绩效,统计每个人的代码执行效率.咱们总不能是每个函数里加time模块吧. import t ...

  3. Python设计模式-装饰器模式

    Python设计模式-装饰器模式 代码基于3.5.2,代码如下; #coding:utf-8 #装饰器模式class Beverage():name = ""price = 0.0 ...

  4. 浅谈Django的中间件与Python的装饰器

    浅谈Django的中间件 与Python的装饰器 一.原理 1.装饰器是Python的一种语法应用,利用闭包的原理去更改一个函数的功能,即让一个函数执行之前先到另外一个函数中执行其他需求语句,在执行该 ...

  5. Python的装饰器

    详解Python的装饰器 本文源码 https://github.com/tobyqin/python_decorator Python中的装饰器是你进入Python大门的一道坎,不管你跨不跨过去它都 ...

  6. python 日志 装饰器_【Python】装饰器实现日志记录

    好的日志对一个软件的重要性是显而易见的.如果函数的入口都要写一行代码来记录日志,这种方式实在是太低效了,但一直没有找到更好的方法.后来用python写一些软件,了解到python的装饰器功能时,突然人 ...

  7. python中装饰器的作用_Python装饰器详解,详细介绍它的应用场景

    装饰器的应用场景附加功能 数据的清理或添加:函数参数类型验证 @require_ints 类似请求前拦截数据格式转换 将函数返回字典改为 JSON/YAML 类似响应后篡改为函数提供额外的数据 moc ...

  8. python 类装饰器 __set___python装饰器代替set get方法实例

    对于变量的访问和设置,我们可以使用get.set方法,如下: class student: def __init__(self,name): self.__name = name def get_na ...

  9. 关于Python的装饰器(1)

    Python的装饰器的概念,一直有点微妙.之前在StackOverflow上看过一篇感觉说明的很清楚的介绍: *A decorator must accept a function as an arg ...

最新文章

  1. python 遍历字符串的每一个字符_Python之字符串的遍历的4种方式
  2. 在Apache的POI XWPFRun对象分隔文本行
  3. 一致性代码段和非一致性代码段
  4. java中的servlet是线程安全的嘛_Java面试题:Servlet是线程安全的吗?(转)
  5. OpenGL画图设备上下文与MFC设备上下文的对应
  6. iostat命令详解_对iostat输出结果的理解
  7. Microsoft Dynamics CRM 数据库连接存储位置在哪里 是在注册表里
  8. 胶囊网络架构_了解胶囊网络-AI的诱人新架构
  9. spss方差分析_【D】SPSS统计案例分析:多因素方差分析
  10. boost::bind with ros topic,ros中subscribe用boost::bind绑定多个参数
  11. [转载] Python3接口自动化框架:第三方openpyxl库读取excel之命名元组namedtuple承载数据
  12. foxmail 7.2密码查看工具_MacOS装机必备:Archiver 3 for Mac解压缩工具
  13. undefined reference to `crypto_get_random'
  14. python音乐推荐系统_音乐推荐系统
  15. 黑马程序员 _银行管理系统
  16. excel曲线拟合怎么弄
  17. JavaEE Spring框架学习笔记(AOP Introductions介绍)
  18. 念叨了一年的游戏叙事书中文版终于出了
  19. RT_Thread_事件集
  20. 计算机组成原理题目透析(2)

热门文章

  1. Visual Studio控制台程序输出窗口一闪而过的解决方法
  2. Gradle_04_解决多项目同级依赖时找不到符号的异常
  3. 【干货】华为-智能世界2030:构建万物互联的智能世界
  4. 【免费下载】2021年5月热门报告盘点下载
  5. 【干货】华为管理干部内部资料:华为管理者应知应会之咨询方法论.pdf(附下载链接)...
  6. 【14:00开播】国际顶会强力加持,算法“视”界杯巅峰之战拉开帷幕!
  7. 腾讯专家深度解析赛题,现场答疑助力上分!
  8. 第一周周冠军带你解析赛题,尝试广告算法新思路
  9. 继续!从顶会论文看对比学习的应用!
  10. 一文速览 | 对话生成预训练模型