python异常处理、自定义异常、断言原理与用法分析


Posted in Python onMarch 23, 2020

本文实例讲述了python异常处理、自定义异常、断言原理与用法。分享给大家供大家参考,具体如下:

什么是异常:

  • 当程序遭遇某些非正常问题的时候就会抛出异常:比如int()只能处理能转化成int的对象,如果传入一个不能转化的对象就会报错并抛出异常python异常处理、自定义异常、断言原理与用法分析
  • 常用的异常有:

ValueError :传入无效的错误的参数python异常处理、自定义异常、断言原理与用法分析

TypeError:进行了对类型无效的操作python异常处理、自定义异常、断言原理与用法分析

IndexError:序列中没有此索引python异常处理、自定义异常、断言原理与用法分析

NameError:使用未定义的变量python异常处理、自定义异常、断言原理与用法分析

 

更多更具体的异常可以参考Python官方文档python异常处理、自定义异常、断言原理与用法分析,读读官方文档更健康


异常的处理:

  • python使用try,except,finally,else来处理异常,它们各自意义如下:

python异常处理、自定义异常、断言原理与用法分析

try:
  s=input("请输入要int的字符串:")
  i=int(s)
except ValueError as e:
  print(e)
else:
  print("这里是当没有发生异常时的操作")
finally:
  print("这里是即使发生异常也会执行的代码")

"""第一次运行结果:
请输入要int的字符串:123
这里是当没有发生异常时的操作
这里是即使发生异常也会执行的代码
"""
"""第二次运行结果
请输入要int的字符串:abc
invalid literal for int() with base 10: 'abc'
这里是即使发生异常也会执行的代码
"""
  • except可以在一条except里捕获多个异常,但需要用括号包裹多个异常,并且即使同时捕获多个异常,由于异常会导致程序发生终止,所以只会捕获到一个异常,所以只需要一个获取异常返回对象的变量:python异常处理、自定义异常、断言原理与用法分析
  • 如果不确定捕获什么异常,可以使用异常的基类Exception【更高级的可以使用BaseException】,并且最好把Exception放在所有except的最后:python异常处理、自定义异常、断言原理与用法分析

自定义异常:

  • 使用raise可以抛出自定义的异常信息python异常处理、自定义异常、断言原理与用法分析
  • 只要继承了Exception,就可以定义自己的异常类:python异常处理、自定义异常、断言原理与用法分析
class myException(Exception):
  def __init__(self,msg):
     self.message=msg
  def __str__(self):###这里就是异常的字符串信息
    return self.message

try :
  raise myException("我的异常")#py3

except myException as e:
  print(e)
  
"""
结果:
我的异常
"""

断言:

  • 意义:与其让程序在运行最崩溃,不如在出现错误条件时就崩溃【比如说,老司机想要开车,随便开车风险很大的,使用断言就好像先判断路况如何,然后再开车,而不是说开车出去才发现交警大队在等待】
police=False
assert police ==False
print("老司机开车啦,呜呜呜")

police=True
assert police ==False
print("老司机开车啦,呜呜呜")#报错,AssertionError

更多Python相关内容感兴趣的读者可查看本站专题:《Python入门与进阶经典教程》、《Python字符串操作技巧汇总》、《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python专用方法与迭代机制实例分析
Sep 15 Python
如何处理Python3.4 使用pymssql 乱码问题
Jan 08 Python
Python对象转JSON字符串的方法
Apr 27 Python
python嵌套字典比较值与取值的实现示例
Nov 03 Python
Python3中条件控制、循环与函数的简易教程
Nov 21 Python
浅谈python中对于json写入txt文件的编码问题
Jun 07 Python
python的pandas工具包,保存.csv文件时不要表头的实例
Jun 14 Python
Python面向对象之类和实例用法分析
Jun 08 Python
Python循环实现n的全排列功能
Sep 16 Python
python如何提取英语pdf内容并翻译
Mar 03 Python
Python结合百度语音识别实现实时翻译软件的实现
Jan 18 Python
Python利用socket模块开发简单的端口扫描工具的实现
Jan 27 Python
python实现单张图像拼接与批量图片拼接
Mar 23 #Python
OpenCV Python实现拼图小游戏
Mar 23 #Python
PYcharm 激活方法(推荐)
Mar 23 #Python
利用 PyCharm 实现本地代码和远端的实时同步功能
Mar 23 #Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
Mar 23 #Python
Python常用编译器原理及特点解析
Mar 23 #Python
Python3.7.0 Shell添加清屏快捷键的实现示例
Mar 23 #Python
You might like
php中常用的预定义变量小结
2012/05/09 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
2014/07/08 PHP
twig模板常用语句实例小结
2016/02/04 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
php提供实现反射的方法和实例代码
2019/09/17 PHP
修改js Calendar日历控件 兼容IE9/谷歌/火狐
2013/01/04 Javascript
javascript:void(0)的作用示例介绍
2013/10/28 Javascript
jquery增加时编辑jqGrid(实例代码)
2013/11/08 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
究竟什么是Node.js?Node.js有什么好处?
2015/05/29 Javascript
深入浅析react native es6语法
2015/12/09 Javascript
jQuery取得iframe中元素的常用方法详解
2016/01/14 Javascript
将List对象列表转换成JSON格式的类实现方法
2016/07/04 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
vue router导航守卫(router.beforeEach())的使用详解
2019/04/19 Javascript
Jquery高级应用Deferred对象原理及使用实例
2020/05/28 jQuery
JS可断点续传文件上传实现代码解析
2020/07/30 Javascript
[02:04]2018DOTA2亚洲邀请赛Secret赛前采访
2018/04/03 DOTA
Python合并两个字典的常用方法与效率比较
2015/06/17 Python
Python中的日期时间处理详解
2016/11/17 Python
Python json 错误xx is not JSON serializable解决办法
2017/03/15 Python
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
完美解决在oj中Python的循环输入问题
2018/06/25 Python
python程序变成软件的实操方法
2019/06/24 Python
python基于递归解决背包问题详解
2019/07/03 Python
pygame实现贪吃蛇游戏(上)
2019/10/29 Python
python实现扫雷游戏
2020/03/03 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
2020/04/08 Python
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
护理专业毕业生自荐信
2014/06/15 职场文书
婚内房产协议书范本
2014/10/02 职场文书
自主招生学校推荐信范文
2015/03/26 职场文书
千手观音观后感
2015/06/03 职场文书
2019年教师节祝福语精选,给老师送上真诚的祝福
2019/09/09 职场文书
导游词之北京明十三陵
2019/10/28 职场文书