python怎么自定义捕获错误


Posted in Python onJune 29, 2020

异常捕捉:

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自定义异常捕获异常处理异常

def set_inf(name,age):
  if not 0 < age < 120:
    raise ValueError('超出范围')
  else:
    print('%s is %s years old' % (name,age))
def set_inf2(name,age):
  assert 0 < age < 120,'超出范围'
  print('%s is %s years old' % (name,age))
if __name__ == '__main__':
  try:
   set_inf('bob',200)
  except ValueError as e:
    print('无效值:',e)
  set_inf2('bob',200)

到此这篇关于python怎么自定义捕获错误的文章就介绍到这了,更多相关python自定义捕获错误的方法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
ssh批量登录并执行命令的python实现代码
May 25 Python
简单了解Django模板的使用
Dec 20 Python
Redis使用watch完成秒杀抢购功能的代码
May 07 Python
python使用PIL给图片添加文字生成海报示例
Aug 17 Python
numpy.meshgrid()理解(小结)
Aug 01 Python
python实现邮件发送功能
Aug 10 Python
Python定时发送天气预报邮件代码实例
Sep 09 Python
python 利用turtle模块画出没有角的方格
Nov 23 Python
Pytorch之parameters的使用
Dec 31 Python
详解Pycharm与anaconda安装配置指南
Aug 25 Python
Python用access判断文件是否被占用的实例方法
Dec 17 Python
用Python爬取英雄联盟的皮肤详细示例
Dec 06 Python
python打开文件的方式有哪些
Jun 29 #Python
解决tensorflow/keras时出现数组维度不匹配问题
Jun 29 #Python
python中如何写类
Jun 29 #Python
基于Python的自媒体小助手---登录页面的实现代码
Jun 29 #Python
Python unittest基本使用方法代码实例
Jun 29 #Python
解决keras使用cov1D函数的输入问题
Jun 29 #Python
快速了解Python开发环境Spyder
Jun 29 #Python
You might like
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
php 上传文件类型判断函数(避免上传漏洞 )
2010/06/08 PHP
PHP实现根据银行卡号判断银行
2015/04/29 PHP
PHP微信红包生成代码分享
2016/10/06 PHP
Yii 2.0自带的验证码使用经验分享
2017/06/19 PHP
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
2014/01/22 Javascript
JS、DOM和JQuery之间的关系示例分析
2014/04/09 Javascript
使用node.js中的Buffer类处理二进制数据的方法
2016/11/26 Javascript
NodeJS创建最简单的HTTP服务器
2017/05/15 NodeJs
angular5 httpclient的示例实战
2018/03/12 Javascript
vue移动端屏幕适配详解
2019/04/30 Javascript
JS实现随机点名器
2020/04/12 Javascript
在js文件中引入(调用)另一个js文件的三种方法
2020/09/11 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
vue 函数调用加括号与不加括号的区别
2020/10/29 Javascript
vue二选一tab栏切换新做法实现
2021/01/19 Vue.js
javascript实现固定侧边栏
2021/02/09 Javascript
[03:11]完美世界DOTA2联赛PWL DAY8集锦
2020/11/09 DOTA
Python入门篇之条件、循环
2014/10/17 Python
玩转python爬虫之cookie使用方法
2016/02/17 Python
Python实现的堆排序算法示例
2018/04/29 Python
解决pandas .to_excel不覆盖已有sheet的问题
2018/12/10 Python
Python使用pyshp库读取shapefile信息的方法
2018/12/29 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
2019/02/16 Python
python并发爬虫实用工具tomorrow实用解析
2019/09/25 Python
用python绘制樱花树
2020/10/09 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
2021/02/24 Python
HomeAway的巴西品牌:Alugue Temporada
2018/04/10 全球购物
运动会通讯稿400字
2014/01/28 职场文书
事业单位竞聘上岗实施方案
2014/03/28 职场文书
思想政治表现评语
2015/01/04 职场文书
西安大雁塔导游词
2015/02/10 职场文书
大学生党员自我评价
2015/03/04 职场文书
小人国观后感
2015/06/11 职场文书
vue整合百度地图显示指定地点信息
2022/04/06 Vue.js