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 列表list使用介绍
Nov 30 Python
Python selenium 三种等待方式详解(必会)
Sep 15 Python
详解10个可以快速用Python进行数据分析的小技巧
Jun 24 Python
利用anaconda作为python的依赖库管理方法
Aug 13 Python
Python pickle模块实现对象序列化
Nov 22 Python
python读写Excel表格的实例代码(简单实用)
Dec 19 Python
Python生成词云的实现代码
Jan 14 Python
Python解释器以及PyCharm的安装教程图文详解
Feb 26 Python
python学习将数据写入文件并保存方法
Jun 07 Python
基于python实现MQTT发布订阅过程原理解析
Jul 27 Python
python excel多行合并的方法
Dec 09 Python
详解tf.device()指定tensorflow运行的GPU或CPU设备实现
Feb 20 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
PHP代码网站如何防范SQL注入漏洞攻击建议分享
2012/03/01 PHP
php后门URL的防范
2013/11/12 PHP
PHP会话处理的10个函数
2015/08/11 PHP
用JS写的一个TableView控件代码
2010/01/23 Javascript
js中点击空白区域时文本框与隐藏层的显示与影藏问题
2013/08/26 Javascript
模拟jQuery中的ready方法及实现按需加载css,js实例代码
2013/09/27 Javascript
javascript将相对路径转绝对路径示例
2014/03/14 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
JavaScript如何实现跨域请求
2016/08/05 Javascript
JQueryMiniUI按照时间进行查询的实现方法
2017/06/07 jQuery
jQuery实现 RadioButton做必选校验功能
2017/06/15 jQuery
Underscore之Array_动力节点Java学院整理
2017/07/10 Javascript
vue-resource + json-server模拟数据的方法
2017/11/02 Javascript
微信小程序使用slider设置数据值及switch开关组件功能【附源码下载】
2017/12/09 Javascript
利用Promise自定义一个GET请求的函数示例代码
2019/03/20 Javascript
layui实现数据表格隐藏列的示例
2019/10/25 Javascript
JavaScript canvas实现雪花随机动态飘落
2020/02/08 Javascript
从Python的源码浅要剖析Python的内存管理
2015/04/16 Python
ubuntu系统下 python链接mysql数据库的方法
2017/01/09 Python
深入理解Django的自定义过滤器
2017/10/17 Python
对python文件读写的缓冲行为详解
2019/02/13 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
Python Tensor FLow简单使用方法实例详解
2020/01/14 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
2020/02/16 Python
css3如何绘制一个圆圆的loading转圈动画
2018/01/09 HTML / CSS
软件测试工程师结构化面试题库
2016/11/23 面试题
园艺师求职信
2014/04/27 职场文书
预防煤气中毒方案
2014/06/16 职场文书
小学生感恩老师演讲稿
2014/08/28 职场文书
会计求职自荐信
2015/03/26 职场文书
银行稽核岗位职责
2015/04/13 职场文书
《卧薪尝胆》读后感3篇
2019/12/26 职场文书
MySQL 不等于的三种使用及区别
2021/06/03 MySQL
Spring Data JPA框架的核心概念和Repository接口
2022/04/28 Java/Android
Nginx报404错误的详细解决方法
2022/07/23 Servers