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 01 Python
基于Python实现通过微信搜索功能查看谁把你删除了
Jan 27 Python
Python与Java间Socket通信实例代码
Mar 06 Python
Python排序搜索基本算法之堆排序实例详解
Dec 08 Python
pandas数据预处理之dataframe的groupby操作方法
Apr 13 Python
Python闭包函数定义与用法分析
Jul 20 Python
flask中的wtforms使用方法
Jul 21 Python
pandas dataframe添加表格框线输出的方法
Feb 08 Python
python实现静态服务器
Sep 05 Python
python实现低通滤波器代码
Feb 26 Python
python引入其他文件夹下的py文件具体方法
May 23 Python
详解Python魔法方法之描述符类
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面向对象全攻略 (九)访问类型
2009/09/30 PHP
利用php绘制饼状图的实现代码
2013/06/07 PHP
CodeIgniter中使用cookie的三种方式详解
2014/07/18 PHP
10个简化PHP开发的工具
2014/12/25 PHP
php生成rss类用法实例
2015/04/14 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
Yii redis集合的基本使用教程
2020/06/14 PHP
在JavaScript中,为什么要尽可能使用局部变量?
2009/04/06 Javascript
JS 动态获取节点代码innerHTML分析 [IE,FF]
2009/11/30 Javascript
解析JavaScript中的标签语句
2013/06/19 Javascript
jquery实现盒子下拉效果示例代码
2013/09/12 Javascript
利用jquery.qrcode在页面上生成二维码且支持中文
2014/02/12 Javascript
Javascript实现禁止输入中文或英文的例子
2014/12/09 Javascript
D3.js封装文本实现自动换行和旋转平移等功能
2016/10/14 Javascript
JavaScript中三种常见的排序方法
2017/02/24 Javascript
vue弹窗组件的实现示例代码
2018/09/10 Javascript
JS实现电商商品展示放大镜特效
2020/01/07 Javascript
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
2020/06/02 jQuery
原生JS实现音乐播放器
2021/01/26 Javascript
Python正则替换字符串函数re.sub用法示例
2017/01/19 Python
python中的decorator的作用详解
2018/07/26 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
Django 实现admin后台显示图片缩略图的例子
2019/07/28 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
sealed修饰符是干什么的
2012/10/23 面试题
公司会议开幕词
2015/01/29 职场文书
保管员岗位职责
2015/02/14 职场文书
辞职信如何写
2015/02/27 职场文书
心灵捕手观后感
2015/06/02 职场文书
校运会加油稿大全
2015/07/22 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书
Python深度学习之Pytorch初步使用
2021/05/20 Python
Python中异常处理用法
2021/11/27 Python
日元符号 ¥
2022/02/17 杂记
Java 多态分析
2022/04/26 Java/Android