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 相关文章推荐
wxPython中文教程入门实例
Jun 09 Python
Python程序中用csv模块来操作csv文件的基本使用教程
Mar 03 Python
Python实现网络端口转发和重定向的方法
Sep 19 Python
python使用opencv进行人脸识别
Apr 07 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
Jun 20 Python
Python模块文件结构代码详解
Feb 03 Python
Python使用Selenium爬取淘宝异步加载的数据方法
Dec 17 Python
Python动态赋值的陷阱知识点总结
Mar 17 Python
常用python爬虫库介绍与简要说明
Jan 25 Python
Pandas时间序列:时期(period)及其算术运算详解
Feb 25 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
Mar 30 Python
python脚本第一行如何写
Aug 30 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 PDOStatement::errorInfo讲解
2019/01/31 PHP
Javascript开发包大全整理
2006/12/22 Javascript
Jquery Ajax学习实例 向页面发出请求,返回XML格式数据
2010/03/14 Javascript
js 图片等比例缩放代码
2010/05/13 Javascript
仿中关村在线首页弹出式广告插件(jQuery版)
2012/05/03 Javascript
javascript图像处理—仿射变换深度理解
2013/01/16 Javascript
JavaScript驾驭网页-CSS与DOM
2016/03/24 Javascript
javascript中call,apply,bind函数用法示例
2016/12/19 Javascript
信息滚动效果的实例讲解
2017/09/18 Javascript
利用CDN加速react webpack打包后的文件详解
2018/02/22 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
2018/08/22 Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
2019/11/08 Javascript
[42:56]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python 异常处理的实例详解
2017/09/11 Python
python pandas模块基础学习详解
2019/07/03 Python
python实现单张图像拼接与批量图片拼接
2020/03/23 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
2020/06/17 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
2020/08/07 Python
PyQt5多线程防卡死和多窗口用法的实现
2020/09/15 Python
HTML5注册表单的自动聚焦与占位文本示例代码
2013/07/19 HTML / CSS
周仰杰(JIMMY CHOO)英国官方网站:闻名世界的鞋子品牌
2018/10/28 全球购物
澳大利亚网上买书:Angus & Robertson
2019/07/21 全球购物
Pamela Love官网:纽约设计师Pamela Love的精美、时尚和穿孔珠宝
2020/10/19 全球购物
星空联盟C# .net笔试题
2014/12/05 面试题
文明村镇申报材料
2014/05/06 职场文书
妇联主席先进事迹
2014/05/18 职场文书
银行求职信怎么写
2014/05/26 职场文书
诚实守信道德模范事迹材料
2014/08/15 职场文书
街道党工委党的群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
2015年教师党员个人总结
2015/11/24 职场文书
MySQL派生表联表查询实战过程
2022/03/20 MySQL
CDPR谈《巫师》新作用虚幻5原因 称不会为Epic独占
2022/04/06 其他游戏
SpringCloud Function SpEL注入漏洞分析及环境搭建
2022/04/08 Java/Android
Python软件包安装的三种常见方法
2022/07/07 Python
SpringBoot前端后端分离之Nginx服务器下载安装过程
2022/08/14 Servers
Spring Boot实现文件上传下载
2022/08/14 Java/Android