文章目录

  • 简单来说
    • 还可以这样
    • 高端操作

简单来说

这个e是异常类的一个实例,如果我们完整地解释这个问题,我觉得还是从Python的自定义异常类说起比较好。

假如,我们现在自定义一个简单的异常类:

>>> class MyError(Exception):
...     def __init__(self,value):
...             self.value = value
...     def __str__(self):
...             return repr(self.value)
...

我们抛这个异常的时候可以这么写:

>>> try:
...     raise MyError(2*2)
... except MyError as e:
...     print('My exception occurred, value:',e.value)
...
My exception occurred, value: 4

我们在捕获这个异常之后假如需要访问TA的一些属性怎么办,这个时候就可以使用as关键字

所以,这里的 e 是前面 MyError 类的一个实例,我们可以直接访问他的 value,也就是你看到的 e.value

还可以这样

try…except…监测一段代码,想要准确的定位错误类型与错误明细

举个栗子,我们想要找到列表a的第四个值,然而其实并不存在…【越界错误 IndexError

写成’except Exception as e’的形式

这时候,代码只要写成下面这样就好了:

a = [1,2,3]try:a[3]
except Exception as e:print('错误类型是',e.__class__.__name__)print('错误明细是',e)

随后你会发现输出结果如下:

错误类型是 IndexError
错误明细是 list index out of range

这样就准确返回了错误类型和错误明细

高端操作

trace模块的traceback函数

使用traceback函数打印错误

a = [1,2,3]try:a[3]
except Exception as e:traceback.print_exc()

输出报错信息如下:

Traceback (most recent call last):File "<ipython-input-45-d04851f889bb>", line 4, in <module>a[3]
IndexError: list index out of range

可见,错误的信息更加详细。精准定位了:错误行,错误位置及错误明细。

另外指定位置可以将错误信息打印出来:

a = [1,2,3]try:a[3]
except Exception as e:traceback.print_exc(file = open('E:/coding/errorlog_abc.txt','a'))

则console不会再显示,结果会出现在指定的文件中

与重定向结合使用,参考文章

try except Exception as e 检查异常相关推荐

  1. exception 类 java_Java 常见异常种类

    1.什么是异常 结构不佳的代码不能运行,这是Java的基本理念. 发现错误的理想时机是在编译期.然而,编译器并不能发现所有的错误,余下的问题就需要在程序运行时解决.这就需要错误能通过某种方式,把适当的 ...

  2. java exception源码_Java异常之 Error 和 Exception

    简单了解 Java 异常 1.实际工作中,遇到的情况不可能是非常完美的. 比如:你写的某个模块,用户输入不一定符合你的要求: 你的程序要打开某个文件,这个文件可能不存在或者文件格式不对: 你要读取数据 ...

  3. 了解Java中的检查与未检查异常

    约书亚·布洛赫(Joshua Bloch)在< 有效的Java >中说 将检查的异常用于可恢复的条件,将运行时异常用于编程错误(第二版中的项目58) 让我们看看我是否正确理解了这一点. 这 ...

  4. 检查异常和非检查异常 有空你去学一下检查异常和非检查异常

    https://blog.csdn.net/weixin_39220472/article/details/81056647 Java检查异常和非检查异常,运行时异常和非运行时异常的区别 灰太狼_cx ...

  5. java异常——异常分类+声明已检查异常+如何抛出异常+自定义异常类

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java异常--异常分类+声明已检查异常+如何抛出异常+自定义异常类 的相关知识: 0.2)异 ...

  6. java 抛异常 jvm_邪恶的Java技巧使JVM忘记检查异常

    java 抛异常 jvm 我长期以来一直在批评Java中编译器检查异常的机制. 无论您是爱还是恨,都可以肯定一件事:在某些情况下,您不想与他们打交道. Java中的解决方案是将一个检查后的异常包装在n ...

  7. 邪恶的Java技巧使JVM忘记检查异常

    我长期以来一直批评Java中的编译器检查异常机制. 无论您是爱还是恨,都可以肯定一件事:在某些情况下,您不想与他们打交道. Java中的解决方案是将一个检查过的异常包装在new RuntimeExce ...

  8. java未检查异常_Java中已检查和未检查的异常

    java未检查异常 Java有两种类型的异常-已检查和未检查. 简而言之,选中的是指开发人员可以从异常中合理恢复的情况,而未选中的异常是无法处理的编程错误. 本文介绍了何时使用哪种. 但这不是那么简单 ...

  9. java的未检查异常有哪些_Java:检查异常与未检查异常

    一.异常的介绍 Throwable 是 Java 中所有错误和异常的超类.Java 虚拟机仅抛出属于此类(或其子类之一)的实例对象,或者是 throw 语句也可以抛出该对象.同样,catch 子句中的 ...

  10. oracle全局批准供应商,Oracle EBS-SQL (PO-7):检查异常-非批准的供应商设置供货比例.sql...

    select distinct msr.sourcing_rule_name            名称 ,msi.description                          说明 ,m ...

最新文章

  1. 哈希表等概率情况下查找成功和查找不成功的平均查找长度的计算
  2. .NET的一点历史故事:作者的一些感想
  3. RUNOOB python练习题9 如何在代码中加入砸瓦鲁多
  4. leetcode1282. 用户分组(贪心算法)
  5. junit跳过datasource_maven – spring集成测试无法加载上下文“另一个资源已存在,名称为dataSource”...
  6. 调查了 71000 名开发者发现,JavaScript 最知名,Python 仍大势
  7. ADC采样间隔问题+TRGO作为ADC的触发源头
  8. (第8天) 什么是Mybatis缓存(Cache)
  9. Lowest Common Multiple Plus
  10. coolfire文章之六
  11. Vant(有赞)UI框架爬坑记——图片轮播+预览
  12. 香槟分校计算机研究生专业,伊利诺伊大学香槟分校计算机科学专业各大方向介绍...
  13. 如何用VB语言实现四连环游戏(重力四子棋)?
  14. 游戏项目开发的简单流程
  15. Quest、Mission、Task——游戏中的“任务”
  16. Android自定义控件 芝麻信用分雷达图
  17. Android 11 正式版发布
  18. 视频分享 500 G JAVA视频网盘分享(JEECG开源社区)
  19. 数据仓库开发之路之一--准备工作
  20. AJAX异步判断注册用户名是否重复

热门文章

  1. 渗透测试-HTTP Strict Transport Security
  2. scrapy框架携带cookie访问淘宝购物车功能的实现代码!
  3. 使用豆瓣源下载python包
  4. 关于Handling Unit SAP包装
  5. 一文读大厂微服务水平
  6. 微信会员卡与CRM打通
  7. 万达商管再次递表港交所:上半年净利润40亿元,外部股东阵容强大
  8. 7.sqli-labs-Less7
  9. oracle lob类型和mysql text_OracleLob类型存储浅析
  10. uniapp开发小程序如何修改picker选中样式及选中字体样式