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 相关文章推荐
Python3 入门教程 简单但比较不错
Nov 29 Python
Python实现模拟浏览器请求及会话保持操作示例
Jul 30 Python
网易2016研发工程师编程题 奖学金(python)
Jun 19 Python
解决Python安装时报缺少DLL问题【两种解决方法】
Jul 15 Python
python 标准差计算的实现(std)
Jul 29 Python
Django模型修改及数据迁移实现解析
Aug 01 Python
python 普通克里金(Kriging)法的实现
Dec 19 Python
python使用pymongo与MongoDB基本交互操作示例
Apr 09 Python
python能开发游戏吗
Jun 11 Python
如何通过命令行进入python
Jul 06 Python
python中PyQuery库用法分享
Jan 15 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
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 array_flip() 删除数组重复元素
2009/01/14 PHP
PHP 操作文件的一些FAQ总结
2009/02/12 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
2013/12/05 Javascript
jQuery使用ajaxSubmit()提交表单示例
2014/04/04 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
JS跨域交互(jQuery+php)之jsonp使用心得
2016/07/01 Javascript
深入理解jQuery()方法的构建原理
2016/12/05 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
JavaScript分步实现一个出生日期的正则表达式
2018/03/22 Javascript
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
2018/07/26 Javascript
使用jquery DataTable和ajax向页面显示数据列表的方法
2018/08/09 jQuery
JS根据Unix时间戳显示发布时间是多久前【项目实测】
2019/07/10 Javascript
解决vue单页面修改样式无法覆盖问题
2019/08/05 Javascript
jQuery AJAX应用实例总结
2020/05/19 jQuery
微信小程序实现watch监听
2020/06/04 Javascript
vue实现移动端拖动排序
2020/08/21 Javascript
解决python3在anaconda下安装caffe失败的问题
2017/06/15 Python
python 自定义异常和异常捕捉的方法
2018/10/18 Python
用xpath获取指定标签下的所有text的实例
2019/01/02 Python
python新手学习使用库
2020/06/11 Python
css3实现文字首尾衔接跑马灯的示例代码
2020/10/16 HTML / CSS
四方通行旅游网:台湾订房、出国旅游
2017/09/20 全球购物
Brydge英国:适用于Apple iPad和Microsoft Surface Pro的蓝牙键盘
2019/05/16 全球购物
小学生成长感言
2014/01/30 职场文书
《临死前的严监生》教学反思
2014/02/13 职场文书
学习十八届三中全会精神实施方案
2014/02/17 职场文书
初中高效课堂实施方案
2014/02/26 职场文书
《欢乐的泼水节》教学反思
2014/04/22 职场文书
个人四风问题整改措施思想汇报
2014/10/04 职场文书
离婚协议书该怎么写
2014/10/04 职场文书
诚信承诺书
2015/01/19 职场文书
讲座开场白台词和结束语
2015/05/29 职场文书
护士岗位竞聘书
2015/09/15 职场文书
Python torch.flatten()函数案例详解
2021/08/30 Python