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 相关文章推荐
python2 与 python3 实现共存的方法
Jul 12 Python
Python面向对象之类的封装操作示例
Jun 08 Python
python如何保证输入键入数字的方法
Aug 23 Python
django连接oracle时setting 配置方法
Aug 29 Python
使用python实现画AR模型时序图
Nov 20 Python
Python 求数组局部最大值的实例
Nov 26 Python
python基于property()函数定义属性
Jan 22 Python
Python itertools.product方法代码实例
Mar 27 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
Dec 03 Python
Django REST framework 限流功能的使用
Jun 24 Python
yolov5返回坐标的方法实例
Mar 17 Python
python blinker 信号库
May 04 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生成随机颜色的方法
2014/11/13 PHP
PHP模板引擎smarty详细介绍
2015/05/26 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
2018/03/31 PHP
js类中的公有变量和私有变量
2008/07/24 Javascript
javascript 函数调用的对象和方法
2010/07/01 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
通过Javascript将数据导出到外部Excel文档的函数代码
2012/06/15 Javascript
30个经典的jQuery代码开发技巧
2014/12/15 Javascript
javascript基于DOM实现权限选择实例分析
2015/05/14 Javascript
谈一谈javascript闭包
2016/01/28 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
2016/06/12 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
2016/12/12 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
2017/06/19 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
js实现拖动缓动效果
2020/01/13 Javascript
vue如何使用外部特殊字体的操作
2020/07/30 Javascript
详解Vue中的watch和computed
2020/11/09 Javascript
用Python的Django框架来制作一个RSS阅读器
2015/07/22 Python
python实现给微信公众号发送消息的方法
2017/06/30 Python
Python高斯消除矩阵
2019/01/02 Python
详解python selenium 爬取网易云音乐歌单名
2019/03/28 Python
python通过txt文件批量安装依赖包的实现步骤
2019/08/13 Python
Django CBV模型源码运行流程详解
2020/08/17 Python
python speech模块的使用方法
2020/09/09 Python
Python判断变量是否是None写法代码实例
2020/10/09 Python
django中cookiecutter的使用教程
2020/12/03 Python
python实现定时发送邮件
2020/12/23 Python
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
小学新教师培训方案
2014/02/03 职场文书
2014年部门工作总结
2014/11/12 职场文书
学生病假条范文
2015/08/17 职场文书
创业计划书之甜品店
2019/09/18 职场文书
python执行js代码的方法
2021/05/13 Python
Python3 类型标注支持操作
2021/06/02 Python