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 21 Python
遍历python字典几种方法总结(推荐)
Sep 11 Python
python 调用c语言函数的方法
Sep 29 Python
Python编程pygal绘图实例之XY线
Dec 09 Python
Python简单计算文件MD5值的方法示例
Apr 11 Python
使用Python AIML搭建聊天机器人的方法示例
Jul 09 Python
Python封装原理与实现方法详解
Aug 28 Python
使用TensorFlow实现二分类的方法示例
Feb 05 Python
Python跳出多重循环的方法示例
Jul 03 Python
django基于cors解决跨域请求问题详解
Aug 06 Python
python中的被动信息搜集
Apr 29 Python
python之PySide2安装使用及QT Designer UI设计案例教程
Jul 26 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
模仿OSO的论坛(五)
2006/10/09 PHP
ThinkPHP中where()使用方法详解
2016/04/19 PHP
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
2007/10/23 Javascript
extjs中grid中嵌入动态combobox的应用
2011/01/01 Javascript
JavaScript对象创建及继承原理实例解剖
2013/02/28 Javascript
js实现数组转换成json
2015/06/26 Javascript
浅谈angular.js中实现双向绑定的方法$watch $digest $apply
2015/10/14 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
JS排序之冒泡排序详解
2017/04/08 Javascript
Express之get,pos请求参数的获取
2017/05/02 Javascript
自定义vue全局组件use使用、vuex的使用详解
2017/06/14 Javascript
nodejs连接mysql数据库及基本知识点详解
2018/03/20 NodeJs
详解Vue依赖收集引发的问题
2019/04/22 Javascript
Javascript数组方法reduce的妙用之处分享
2019/06/10 Javascript
VsCode里的Vue模板的实现
2020/08/12 Javascript
python实现得到一个给定类的虚函数
2014/09/28 Python
Python多进程通信Queue、Pipe、Value、Array实例
2014/11/21 Python
使用Python绘制图表大全总结
2017/02/11 Python
Python 批量刷博客园访问量脚本过程解析
2019/08/30 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
2019/12/19 Python
利用python3 的pygame模块实现塔防游戏
2019/12/30 Python
python3 deque 双向队列创建与使用方法分析
2020/03/24 Python
师范生自荐信
2013/10/27 职场文书
行政助理的职责
2013/11/14 职场文书
工商管理实习生自我鉴定范文
2013/12/18 职场文书
村班子对照检查材料
2014/08/18 职场文书
网上祭先烈心得体会
2014/09/01 职场文书
2014学习优秀共产党员先进事迹材料思想汇报
2014/09/14 职场文书
村支部书记群众路线对照检查材料思想汇报
2014/10/08 职场文书
离婚协议书范文2014(夫妻感情破裂)
2014/12/14 职场文书
2015年公共机构节能宣传周活动总结
2015/03/26 职场文书
2015年办公室主任工作总结
2015/04/09 职场文书
单位综合评价意见
2015/06/05 职场文书
暑假打工感想
2015/08/07 职场文书
使用Redis做预定库存缓存功能
2022/04/02 Redis
python创建字典及相关管理操作
2022/04/13 Python