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程序的循环的运行效率的原因
Apr 01 Python
Python实现简单多线程任务队列
Feb 27 Python
浅析Python中的赋值和深浅拷贝
Aug 15 Python
使用tqdm显示Python代码执行进度功能
Dec 08 Python
基于TensorBoard中graph模块图结构分析
Feb 15 Python
python绘制动态曲线教程
Feb 24 Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 Python
Python序列化pickle模块使用详解
Mar 05 Python
keras 实现轻量级网络ShuffleNet教程
Jun 19 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
Jul 30 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
Jan 06 Python
使用Python快速打开一个百万行级别的超大Excel文件的方法
Mar 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 读取文件内容代码(txt,js等)
2009/12/06 PHP
CI框架源码阅读,系统常量文件constants.php的配置
2013/02/28 PHP
php CI框架插入一条或多条sql记录示例
2014/07/29 PHP
php中filter_input函数用法分析
2014/11/15 PHP
php实现通用的信用卡验证类
2015/03/24 PHP
Zend Framework实现具有基本功能的留言本(附demo源码下载)
2016/03/22 PHP
Javascript操作cookie的函数代码
2012/10/03 Javascript
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
基于jQuery的ajax方法封装
2016/07/14 Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
2016/12/14 Javascript
JavaScript实现元素滚动条到达一定位置循环追加内容
2017/12/28 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
2018/02/06 Javascript
js实现删除li标签一行内容
2019/04/16 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
Python字符串处理实例详解
2017/05/18 Python
Python编程django实现同一个ip十分钟内只能注册一次
2017/11/03 Python
详解python使用Nginx和uWSGI来运行Python应用
2018/01/09 Python
微信跳一跳python辅助脚本(总结)
2018/01/11 Python
Numpy数组的保存与读取方法
2018/04/04 Python
python实现判断一个字符串是否是合法IP地址的示例
2018/06/04 Python
python中的插值 scipy-interp的实现代码
2018/07/23 Python
Python开发网站目录扫描器的实现
2019/02/21 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
为什么说python适合写爬虫
2020/06/11 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
TripAdvisor德国:全球领先的旅游网站
2017/12/07 全球购物
体育教育毕业生自荐信
2013/11/21 职场文书
物业管理计划书
2014/01/10 职场文书
售后服务承诺书
2014/03/26 职场文书
《月球之谜》教学反思
2014/04/10 职场文书
远程网络教育毕业生自我鉴定
2014/04/14 职场文书
竞选班干部演讲稿100字
2014/08/20 职场文书
党的群众路线教育实践活动个人整改措施材料
2014/11/04 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书
社区宣传标语口号
2015/12/26 职场文书