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爬虫框架Scrapy安装使用步骤
Apr 01 Python
python实用代码片段收集贴
Jun 03 Python
学习python类方法与对象方法
Mar 15 Python
如何在python中使用selenium的示例
Dec 26 Python
python基础学习之如何对元组各个元素进行命名详解
Jul 12 Python
python解析json串与正则匹配对比方法
Dec 20 Python
python中的数据结构比较
May 13 Python
Python使用Pandas读写Excel实例解析
Nov 19 Python
python与mysql数据库交互的实现
Jan 06 Python
Python小白不正确的使用类变量实例
May 29 Python
Python与C++中梯度方向直方图的实现
Mar 17 Python
Python requests用法和django后台处理详解
Mar 19 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定时自动生成静态HTML的实现代码
2010/06/20 PHP
php实现图片缩放功能类
2013/12/18 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
2010/11/23 Javascript
Fastest way to build an HTML string(拼装html字符串的最快方法)
2011/08/20 Javascript
javascript动态加载二
2012/08/22 Javascript
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
jQuery新的事件绑定机制on()示例应用
2014/07/18 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
2014/12/17 Javascript
jquery比较简洁的软键盘特效实现方法
2015/03/19 Javascript
纯javascript实现四方向文本无缝滚动效果
2015/06/16 Javascript
实例解析jQuery工具函数
2016/12/01 Javascript
Three.js基础部分学习
2017/01/08 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
Agularjs妙用双向数据绑定实现手风琴效果
2017/05/26 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
JS通过位运算实现权限加解密
2018/08/14 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
Python数据分析之如何利用pandas查询数据示例代码
2017/09/01 Python
Python玩转Excel的读写改实例
2019/02/22 Python
anaconda中更改python版本的方法步骤
2019/07/14 Python
使用pycharm在本地开发并实时同步到服务器
2019/08/02 Python
Python matplotlib生成图片背景透明的示例代码
2019/08/30 Python
Python基于Socket实现简易多人聊天室的示例代码
2020/11/29 Python
一款利用纯css3实现的win8加载动画的实例分析
2014/12/11 HTML / CSS
AmazeUI图片轮播效果的示例代码
2020/08/20 HTML / CSS
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
英国标志性生活方式品牌:Skinnydip London
2019/12/15 全球购物
同事吵架检讨书
2014/02/05 职场文书
协议书与合同的区别
2014/04/18 职场文书
尊老爱幼演讲稿
2014/09/04 职场文书
无私奉献演讲稿
2014/09/04 职场文书
优秀团员事迹材料
2014/12/25 职场文书
2015年度质量工作总结报告
2015/04/27 职场文书
spring注解 @PropertySource配置数据源全流程
2022/03/25 Java/Android