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通过zlib实现压缩与解压字符串的方法
Nov 19 Python
Phantomjs抓取渲染JS后的网页(Python代码)
May 13 Python
Python 类的继承实例详解
Mar 25 Python
python+opencv轮廓检测代码解析
Jan 05 Python
Python中常用的内置方法
Jan 28 Python
python实现在cmd窗口显示彩色文字
Jun 24 Python
python之mock模块基本使用方法详解
Jun 27 Python
pandas DataFrame的修改方法(值、列、索引)
Aug 02 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
Aug 18 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
Nov 08 Python
python flask搭建web应用教程
Nov 19 Python
TensorFlow固化模型的实现操作
May 26 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 session 预定义数组
2009/03/16 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
2013/04/23 PHP
php之curl设置超时实例
2014/11/03 PHP
php去除数组中重复数据
2014/11/18 PHP
ecshop实现smtp发送邮件
2015/02/03 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
PHP实现文件上传与下载
2020/08/28 PHP
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
AspNet中使用JQuery上传插件Uploadify详解
2015/05/20 Javascript
js 右侧浮动层效果实现代码(跟随滚动)
2015/11/22 Javascript
js创建数组的简单方法
2016/07/27 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
vue elementUI tree树形控件获取父节点ID的实例
2018/09/12 Javascript
Vue.js轮播图走马灯代码实例(全)
2019/05/08 Javascript
Node.js API详解之 querystring用法实例分析
2020/04/29 Javascript
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
python条件和循环的使用方法
2013/11/01 Python
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
Django中的Model操作表的实现
2018/07/24 Python
Python3.6使用tesseract-ocr的正确方法
2018/10/17 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
2019/06/05 Python
python opencv 实现读取、显示、写入图像的方法
2020/06/08 Python
浏览器实现移动端高性能css3动画(开启gpu加速)
2013/12/23 HTML / CSS
HTML5 文件域+FileReader 分段读取文件并上传到服务器
2017/10/23 HTML / CSS
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
video.js支持m3u8格式直播的实现示例
2020/05/20 HTML / CSS
DJI全球:DJI Global
2021/03/15 全球购物
自我鉴定标准格式
2014/03/19 职场文书
2014年人事行政工作总结
2014/12/03 职场文书
企业党支部工作总结2015
2015/05/21 职场文书
行政二审代理词
2015/05/25 职场文书
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL