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使用百度API上传文件到百度网盘代码分享
Nov 08 Python
Python中的ConfigParser模块使用详解
May 04 Python
浅谈Python爬取网页的编码处理
Nov 04 Python
python 字符串只保留汉字的方法
Nov 16 Python
机器学习实战之knn算法pandas
Jun 22 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
Aug 09 Python
python数组循环处理方法
Aug 26 Python
python代码实现TSNE降维数据可视化教程
Feb 28 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
Feb 26 Python
OpenCV-Python实现人脸美白算法的实例
Jun 11 Python
python数据分析之单因素分析线性拟合及地理编码
Jun 25 Python
Python如何利用pandas读取csv数据并绘图
Jul 07 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的五种设计模式
2012/09/05 PHP
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
jquery png 透明解决方案(推荐)
2010/08/21 Javascript
解析javascript系统错误:-1072896658的解决办法
2013/07/08 Javascript
JS之Date对象和获取系统当前时间详解
2014/01/13 Javascript
jQuery中ajax的post()方法用法实例
2014/12/26 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
nodejs加密Crypto的实例代码
2016/07/07 NodeJs
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
JS 实现可停顿的垂直滚动实例代码
2016/11/23 Javascript
jquery实现简单实用的轮播器
2017/05/23 jQuery
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
2017/06/04 Javascript
AngularJS的ng-click传参的方法
2017/06/19 Javascript
详解Nuxt.js部署及踩过的坑
2018/08/07 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
vue接通后端api以及部署到服务器操作
2020/08/13 Javascript
js删除对象中的某一个字段的方法实现
2021/01/11 Javascript
Python自定义scrapy中间模块避免重复采集的方法
2015/04/07 Python
使用Python发送各种形式的邮件的方法汇总
2015/11/09 Python
简单易懂的python环境安装教程
2017/07/13 Python
Python获取航线信息并且制作成图的讲解
2019/01/03 Python
ActiveMQ:使用Python访问ActiveMQ的方法
2019/01/30 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
python中dict使用方法详解
2019/07/17 Python
浅析Windows 嵌入python解释器的过程
2019/07/26 Python
Python如何实现动态数组
2019/11/02 Python
python数据爬下来保存的位置
2020/02/17 Python
解决python -m pip install --upgrade pip 升级不成功问题
2020/03/05 Python
如何理解python对象
2020/06/21 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
网络工程系信息安全技术专业大学生求职信
2013/10/22 职场文书
车间组长岗位职责
2013/12/20 职场文书
教师竞聘演讲稿
2014/05/16 职场文书
副总经理任命书
2014/06/05 职场文书
党的群众路线批评与自我批评范文
2014/10/16 职场文书
初二物理教学反思
2016/02/19 职场文书