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中的多线程实例教程
Aug 27 Python
Django 2.0版本的新特性抢先看!
Jan 05 Python
Python列表解析配合if else的方法
Jun 23 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
Jul 11 Python
解决win64 Python下安装PIL出错问题(图解)
Sep 03 Python
python游戏地图最短路径求解
Jan 16 Python
Python字符串匹配之6种方法的使用详解
Apr 08 Python
django基于restframework的CBV封装详解
Aug 08 Python
浅析PyTorch中nn.Module的使用
Aug 18 Python
django 模版关闭转义方式
May 14 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
Jul 01 Python
python从PDF中提取数据的示例
Oct 30 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可逆加密函数(分享)
2013/06/06 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
2013/12/20 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
2014/07/05 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
Javascript string 扩展库代码
2010/04/09 Javascript
js判断字符长度及中英文数字等
2014/03/19 Javascript
jQuery修改li下的样式以及li下的img的src的值的方法
2014/11/02 Javascript
点击页面任何位置隐藏div的实现方法
2016/09/05 Javascript
js实现登录框鼠标拖拽效果
2017/03/09 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
2017/07/09 Javascript
vue-resouce设置请求头的三种方法
2017/09/12 Javascript
详解微信小程序Page中data数据操作和函数调用
2017/09/27 Javascript
详解vue+css3做交互特效的方法
2017/11/20 Javascript
JS删除数组里的某个元素方法
2018/02/03 Javascript
JavaScript中字符串的常用操作方法及特殊字符
2018/03/18 Javascript
vue刷新页面时去闪烁提升用户体验效果的实现方法
2018/12/10 Javascript
vue 使用v-for进行循环的实例代码详解
2020/02/19 Javascript
JavaScript对象访问器Getter及Setter原理解析
2020/12/08 Javascript
python的类变量和成员变量用法实例教程
2014/08/25 Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
2016/09/18 Python
python 移除字符串尾部的数字方法
2018/07/17 Python
Python实现多属性排序的方法
2018/12/05 Python
Python http接口自动化测试框架实现方法示例
2018/12/06 Python
Django中Aggregation聚合的基本使用方法
2020/07/09 Python
关于python scrapy中添加cookie踩坑记录
2020/11/17 Python
用CSS3来实现社交分享按钮
2014/11/11 HTML / CSS
HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等
2018/11/30 HTML / CSS
美国钻石商店:Zales
2016/11/20 全球购物
Melissa鞋马来西亚官方网站:MDreams马来西亚
2018/04/05 全球购物
老板电器官方购物商城:老板油烟机、燃气灶、消毒柜、电烤箱
2018/05/30 全球购物
护士自荐信范文
2013/12/15 职场文书
会走路的树教学反思
2014/02/20 职场文书
房产委托公证书样本
2014/04/04 职场文书
四风问题对照检查材料思想汇报
2014/10/07 职场文书
教师节老师寄语
2015/05/28 职场文书
简单聊聊Vue中的计算属性和属性侦听
2021/10/05 Vue.js