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 元组(Tuple)操作详解
Mar 11 Python
Python解决鸡兔同笼问题的方法
Dec 20 Python
Linux下用Python脚本监控目录变化代码分享
May 21 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
Feb 18 Python
python实现两个文件合并功能
Apr 01 Python
python 删除列表里所有空格项的方法总结
Apr 18 Python
详解Python下ftp上传文件linux服务器
Jun 21 Python
Python设计模式之命令模式原理与用法实例分析
Jan 11 Python
Python3 pickle对象串行化代码实例解析
Mar 23 Python
PyQt QMainWindow的使用示例
Mar 24 Python
一劳永逸彻底解决pip install慢的办法
May 24 Python
Python时间操作之pytz模块使用详解
Jun 14 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
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
javascript之函数直接量(function(){})()
2007/06/29 Javascript
js 实现无缝滚动 兼容IE和FF
2009/07/15 Javascript
input按钮的事件处理大全
2010/12/10 Javascript
关于URL中的特殊符号使用介绍
2011/11/03 Javascript
使用PHP+JQuery+Ajax分页的实现
2013/04/23 Javascript
Javascript表格翻页效果的具体实现
2013/10/05 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
Jquery表单验证失败后不提交的解决方法
2016/10/18 Javascript
值得分享的JavaScript实现图片轮播组件
2016/11/21 Javascript
微信小程序使用picker实现时间和日期选择框功能【附源码下载】
2017/12/11 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
vue地址栏直接输入路由无效问题的解决
2018/11/15 Javascript
详解vue的数据劫持以及操作数组的坑
2019/04/18 Javascript
Python实现把数字转换成中文
2015/06/29 Python
Python进度条实时显示处理进度的示例代码
2018/01/30 Python
Django+Ajax+jQuery实现网页动态更新的实例
2018/05/28 Python
python面向对象法实现图书管理系统
2019/04/19 Python
Python简单基础小程序的实例代码
2019/04/28 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
Python排序函数的使用方法详解
2020/12/11 Python
香港钟表珠宝首饰商城:OneMallTime网摩间
2016/10/14 全球购物
在线吉他课程,学习如何弹吉他:Fender Play
2019/02/28 全球购物
英国领先的男装设计师服装独立零售商:Repertoire Fashion
2020/10/19 全球购物
小学生自我评价范文
2014/01/25 职场文书
租房协议书范本
2014/04/09 职场文书
入党介绍人评语
2014/05/06 职场文书
销售求职信范文
2014/05/26 职场文书
爱护公共设施的标语
2014/06/24 职场文书
诚信考试承诺书范文
2015/04/29 职场文书
法院执行局工作总结
2015/08/11 职场文书
2016年校园重阳节广播稿
2015/12/18 职场文书
党员心得体会范文2016
2016/01/23 职场文书
Python 数据可视化之Bokeh详解
2021/11/02 Python
MySQL池化框架学习接池自定义
2022/07/23 MySQL