python 自定义异常和异常捕捉的方法


Posted in Python onOctober 18, 2018

异常捕捉:

try: 
 XXXXX1
 raise Exception(“xxxxx2”) 
except (Exception1,Exception2,……): 
 xxxx3
else:
 xxxxx4
finally:
 xxxxxxx5

1.raise 语句可以自定义报错信息,如上。

2. raise后的语句是不会被执行了,因为已经抛出异常,控制流将会跳到异常捕捉模块。

3. except 语句可以一个except后带多个异常,也可以用多个语句捕捉多个异常,分别做不同处理。

4. except语句捕捉的异常如果没有发生,那么except里的语句块是不被执行的。而是执行else里的语句

5. 在上面语句中try/except/else/finally所出现的顺序必须是try?>except X?>except?>else?>finally,即所有的except必须在else和finally之前,else(如果有的话)必须在finally之前,而except X必须在except之前。否则会出现语法错误。

6.else和finally都是可选的.

7.在上面的完整语句中,else语句的存在必须以except X或者except语句为前提,如果在没有except语句的try block中使用else语句会引发语法错误。

异常参数输出:

try:
 testRaise()
except PreconditionsException as e: #python3的写法,必须用as
 print (e)

自定义异常,只需自定义异常类继承父类Exception。在自定义异常类中,重写父类init方法。

class DatabaseException(Exception):
 def __init__(self,err='数据库错误'):
  Exception.__init__(self,err)

class PreconditionsException(DatabaseException):
 def __init__(self,err='PreconditionsErr'):
  DatabaseException.__init__(self,err)

def testRaise():
 raise PreconditionsException()

try:
 testRaise()
except PreconditionsException as e:
 print (e)

注意:PreconditonsException又是DatabaseException的子类。

所以如果,raise PreconditionException的话,用两个异常类都可以捕捉。

但是, 如果是raise DatabaseException, 用PreconditonsException是捕捉不到的。

以上这篇python 自定义异常和异常捕捉的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python类的继承实例详解
Mar 30 Python
python分治法求二维数组局部峰值方法
Apr 03 Python
删除python pandas.DataFrame 的多重index实例
Jun 08 Python
Flask框架工厂函数用法实例分析
May 25 Python
Python自动化运维之Ansible定义主机与组规则操作详解
Jun 13 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
Aug 27 Python
python传到前端的数据,双引号被转义的问题
Apr 03 Python
浅谈keras2 predict和fit_generator的坑
Jun 17 Python
Python 2.6.6升级到Python2.7.15的详细步骤
Dec 14 Python
详解matplotlib绘图样式(style)初探
Feb 03 Python
numpy实现RNN原理实现
Mar 02 Python
Python中递归以及递归遍历目录详解
Oct 24 Python
详解Python发送email的三种方式
Oct 18 #Python
python try except 捕获所有异常的实例
Oct 18 #Python
对Python中Iterator和Iterable的区别详解
Oct 18 #Python
对python中的iter()函数与next()函数详解
Oct 18 #Python
对Python 3.2 迭代器的next函数实例讲解
Oct 18 #Python
对python中的高效迭代器函数详解
Oct 18 #Python
对Python中内置异常层次结构详解
Oct 18 #Python
You might like
浅析使用Turck-mmcache编译来加速、优化PHP代码
2013/06/20 PHP
windows7下安装php的imagick和imagemagick扩展教程
2014/07/04 PHP
php中函数前加&符号的作用分解
2014/07/08 PHP
PHP从FLV文件获取视频预览图的方法
2015/03/12 PHP
PHP实现页面静态化的超简单方法
2016/09/06 PHP
Yii框架实现多数据库配置和操作的方法
2017/05/25 PHP
解密效果
2006/06/23 Javascript
用javascript编写的第一人称射击游戏
2007/02/25 Javascript
javascript中的继承实例代码
2011/04/27 Javascript
EasyUI,点击开启编辑框,并且编辑框获得焦点的方法
2015/03/01 Javascript
js实现简单选项卡与自动切换效果的方法
2015/04/10 Javascript
bootstrap laydate日期组件使用详解
2017/01/04 Javascript
支持移动端原生js轮播图
2017/02/16 Javascript
angularjs封装$http为factory的方法
2017/05/18 Javascript
form表单序列化详解(推荐)
2017/08/15 Javascript
vue鼠标悬停事件实例详解
2019/04/01 Javascript
vue cli4.0项目引入typescript的方法
2020/07/17 Javascript
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
通过mod_python配置运行在Apache上的Django框架
2015/07/22 Python
关于Python元祖,列表,字典,集合的比较
2017/01/06 Python
Python判断两个对象相等的原理
2017/12/12 Python
Python设计模式之中介模式简单示例
2018/01/09 Python
Python实现简易过滤删除数字的方法小结
2019/01/09 Python
Django CSRF认证的几种解决方案
2020/03/03 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
2020/06/10 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
2020/10/19 Python
python中count函数知识点浅析
2020/12/17 Python
北美领先的牛仔品牌:Buffalo David Bitton
2017/05/22 全球购物
廉价航班、机票和酒店:JustFly
2018/02/07 全球购物
软件测试笔试题
2012/10/25 面试题
实习生体会的自我评价范文
2013/11/28 职场文书
十佳班主任事迹材料
2014/01/18 职场文书
小学班级口号
2014/06/09 职场文书
师范类求职信
2014/06/21 职场文书
纪念九一八事变演讲稿:忘记意味着背叛
2014/09/14 职场文书
感恩教师主题班会
2015/08/12 职场文书