try except Exception as e 检查异常
文章目录
- 简单来说
- 还可以这样
- 高端操作
简单来说
这个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 检查异常相关推荐
- exception 类 java_Java 常见异常种类
1.什么是异常 结构不佳的代码不能运行,这是Java的基本理念. 发现错误的理想时机是在编译期.然而,编译器并不能发现所有的错误,余下的问题就需要在程序运行时解决.这就需要错误能通过某种方式,把适当的 ...
- java exception源码_Java异常之 Error 和 Exception
简单了解 Java 异常 1.实际工作中,遇到的情况不可能是非常完美的. 比如:你写的某个模块,用户输入不一定符合你的要求: 你的程序要打开某个文件,这个文件可能不存在或者文件格式不对: 你要读取数据 ...
- 了解Java中的检查与未检查异常
约书亚·布洛赫(Joshua Bloch)在< 有效的Java >中说 将检查的异常用于可恢复的条件,将运行时异常用于编程错误(第二版中的项目58) 让我们看看我是否正确理解了这一点. 这 ...
- 检查异常和非检查异常 有空你去学一下检查异常和非检查异常
https://blog.csdn.net/weixin_39220472/article/details/81056647 Java检查异常和非检查异常,运行时异常和非运行时异常的区别 灰太狼_cx ...
- java异常——异常分类+声明已检查异常+如何抛出异常+自定义异常类
[0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java异常--异常分类+声明已检查异常+如何抛出异常+自定义异常类 的相关知识: 0.2)异 ...
- java 抛异常 jvm_邪恶的Java技巧使JVM忘记检查异常
java 抛异常 jvm 我长期以来一直在批评Java中编译器检查异常的机制. 无论您是爱还是恨,都可以肯定一件事:在某些情况下,您不想与他们打交道. Java中的解决方案是将一个检查后的异常包装在n ...
- 邪恶的Java技巧使JVM忘记检查异常
我长期以来一直批评Java中的编译器检查异常机制. 无论您是爱还是恨,都可以肯定一件事:在某些情况下,您不想与他们打交道. Java中的解决方案是将一个检查过的异常包装在new RuntimeExce ...
- java未检查异常_Java中已检查和未检查的异常
java未检查异常 Java有两种类型的异常-已检查和未检查. 简而言之,选中的是指开发人员可以从异常中合理恢复的情况,而未选中的异常是无法处理的编程错误. 本文介绍了何时使用哪种. 但这不是那么简单 ...
- java的未检查异常有哪些_Java:检查异常与未检查异常
一.异常的介绍 Throwable 是 Java 中所有错误和异常的超类.Java 虚拟机仅抛出属于此类(或其子类之一)的实例对象,或者是 throw 语句也可以抛出该对象.同样,catch 子句中的 ...
- oracle全局批准供应商,Oracle EBS-SQL (PO-7):检查异常-非批准的供应商设置供货比例.sql...
select distinct msr.sourcing_rule_name 名称 ,msi.description 说明 ,m ...
最新文章
- 哈希表等概率情况下查找成功和查找不成功的平均查找长度的计算
- .NET的一点历史故事:作者的一些感想
- RUNOOB python练习题9 如何在代码中加入砸瓦鲁多
- leetcode1282. 用户分组(贪心算法)
- junit跳过datasource_maven – spring集成测试无法加载上下文“另一个资源已存在,名称为dataSource”...
- 调查了 71000 名开发者发现,JavaScript 最知名,Python 仍大势
- ADC采样间隔问题+TRGO作为ADC的触发源头
- (第8天) 什么是Mybatis缓存(Cache)
- Lowest Common Multiple Plus
- coolfire文章之六
- Vant(有赞)UI框架爬坑记——图片轮播+预览
- 香槟分校计算机研究生专业,伊利诺伊大学香槟分校计算机科学专业各大方向介绍...
- 如何用VB语言实现四连环游戏(重力四子棋)?
- 游戏项目开发的简单流程
- Quest、Mission、Task——游戏中的“任务”
- Android自定义控件 芝麻信用分雷达图
- Android 11 正式版发布
- 视频分享 500 G JAVA视频网盘分享(JEECG开源社区)
- 数据仓库开发之路之一--准备工作
- AJAX异步判断注册用户名是否重复