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单链表实现代码实例
Nov 21 Python
Mac 上切换Python多版本
Jun 17 Python
python实现批量修改文件名代码
Sep 10 Python
Python实现的质因式分解算法示例
May 03 Python
Python实现base64编码的图片保存到本地功能示例
Jun 22 Python
示例详解Python3 or Python2 两者之间的差异
Aug 23 Python
python 用opencv调用训练好的模型进行识别的方法
Dec 07 Python
打包PyQt5应用时的注意事项
Feb 14 Python
PYcharm 激活方法(推荐)
Mar 23 Python
keras自定义损失函数并且模型加载的写法介绍
Jun 15 Python
Django创建一个后台的基本步骤记录
Oct 02 Python
关于python3.9安装wordcloud出错的问题及解决办法
Nov 02 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字符串截取的简单方法
2013/07/04 PHP
php中通过DirectoryIterator删除整个目录的方法
2015/03/13 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
2018/08/06 PHP
YII框架页面缓存操作示例
2019/04/29 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
2019/10/02 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
iis6+javascript Add an Extension File
2007/06/13 Javascript
javascript 继承实现方法
2009/08/26 Javascript
JS格式化数字保留两位小数点示例代码
2013/10/15 Javascript
tuzhu_req.js 实现仿百度图片首页效果
2015/08/11 Javascript
JavaScript地理位置信息API
2016/06/11 Javascript
D3.js实现雷达图的方法详解
2016/09/22 Javascript
Vue学习笔记进阶篇之多元素及多组件过渡
2017/07/19 Javascript
vue的安装及element组件的安装方法
2018/03/09 Javascript
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
vue实现多个echarts根据屏幕大小变化而变化实例
2020/07/19 Javascript
Vant+postcss-pxtorem 实现浏览器适配功能
2021/02/05 Javascript
[09:13]DOTA2-DPC中国联赛 正赛 Ehome vs Magma 选手采访 1月19日
2021/03/11 DOTA
跟老齐学Python之开始真正编程
2014/09/12 Python
Python set集合类型操作总结
2014/11/07 Python
python九九乘法表的实例
2017/09/26 Python
python中的&&及||的实现示例
2019/08/07 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
Python中文分词库jieba,pkusegwg性能准确度比较
2020/02/11 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
一张图片能隐含千言万语之隐藏你的程序代码
2012/12/13 HTML / CSS
意大利和国际最佳时尚品牌:Drestige
2019/12/28 全球购物
简单介绍Object类的功能、常用方法
2013/10/02 面试题
日语翻译个人求职的自我评价
2013/10/14 职场文书
户籍证明书标准模板
2014/09/10 职场文书
社保代办委托书怎么写
2014/10/06 职场文书
导游词之河姆渡遗址博物馆
2019/10/10 职场文书
Python基础之变量的相关知识总结
2021/06/23 Python
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫