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遍历指定文件及文件夹的方法
May 09 Python
Python 正则表达式入门(初级篇)
Dec 07 Python
pip install urllib2不能安装的解决方法
Jun 12 Python
pandas重新生成索引的方法
Nov 06 Python
python flask框架实现传数据到js的方法分析
Jun 11 Python
python实现ip地址的包含关系判断
Feb 07 Python
浅谈Python线程的同步互斥与死锁
Mar 22 Python
在python中利用pycharm自定义代码块教程(三步搞定)
Apr 15 Python
python logging通过json文件配置的步骤
Apr 27 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
May 03 Python
Python实现寻找回文数字过程解析
Jun 09 Python
如何用python 操作zookeeper
Dec 28 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
Session的工作方式
2006/10/09 PHP
解析如何修改phpmyadmin中的默认登陆超时时间
2013/06/25 PHP
PHP判断是否为空的几个函数对比
2015/04/21 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
2019/07/01 PHP
JS 控制CSS样式表
2009/08/20 Javascript
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
JavaScript快速检测浏览器对CSS3特性的支持情况
2012/09/26 Javascript
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
2014/05/02 Javascript
JavaScript函数详解
2014/11/17 Javascript
js带点自动图片轮播幻灯片特效代码分享
2015/09/07 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
bootstrap学习笔记之初识bootstrap
2016/06/21 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
2019/12/01 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
2020/01/07 Javascript
python局部赋值的规则
2013/03/07 Python
python中关于日期时间处理的问答集锦
2013/03/08 Python
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
python实现梯度下降算法
2020/03/24 Python
python使用Turtle库绘制动态钟表
2018/11/19 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
2019/12/31 Python
Python venv虚拟环境配置过程解析
2020/07/08 Python
canvas粒子动画背景的实现示例
2018/09/03 HTML / CSS
美国木工工具和用品商店:Woodcraft
2019/10/30 全球购物
意大利和国际最佳时尚品牌:Drestige
2019/12/28 全球购物
Tessabit美国:集世界奢侈品和设计师品牌的意大利精品买手店
2020/06/29 全球购物
酒店个人求职信范文
2014/01/25 职场文书
社区活动邀请函范文
2014/01/29 职场文书
演讲比赛获奖感言
2014/02/02 职场文书
教师专业自荐书范文
2014/02/10 职场文书
2014年计生标语
2014/06/23 职场文书
集体生日活动方案
2014/08/18 职场文书
2015元旦联欢晚会结束语
2014/12/14 职场文书
个人工作总结(管理人员)范文
2019/08/13 职场文书
Python实现socket库网络通信套接字
2021/06/04 Python
浅谈resultMap的用法及关联结果集映射
2021/06/30 Java/Android