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实例一个类背后发生了什么
Feb 09 Python
django1.8使用表单上传文件的实现方法
Nov 04 Python
python opencv人脸检测提取及保存方法
Aug 03 Python
python使用knn实现特征向量分类
Dec 26 Python
Python中使用__new__实现单例模式并解析
Jun 25 Python
python多任务之协程的使用详解
Aug 26 Python
python数据化运营的重要意义
Nov 25 Python
Pytorch to(device)用法
Jan 08 Python
python实现打砖块游戏
Feb 25 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
Jun 02 Python
Python使用windows设置定时执行脚本
Nov 12 Python
python 获取剪切板内容的两种方法
Nov 28 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静态新闻列表自动生成代码
2007/06/14 PHP
php中常用字符串处理代码片段整理
2011/11/07 PHP
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
PHP实现多图上传(结合uploadify插件)思路分析
2016/11/30 PHP
基于PHP实现栈数据结构和括号匹配算法示例
2017/08/10 PHP
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
2013/04/07 Javascript
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
JavaScript的事件机制详解
2017/01/17 Javascript
jQuery Collapse1.1.0折叠插件简单使用
2017/08/28 jQuery
H5实现仿flash效果的实现代码
2017/09/29 Javascript
微信小程序缓存过期时间的使用详情
2019/05/12 Javascript
Echarts动态加载多条折线图的实现代码
2019/05/24 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
使用python统计文件行数示例分享
2014/02/21 Python
python实现list元素按关键字相加减的方法示例
2017/06/09 Python
django 创建过滤器的实例详解
2017/08/14 Python
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
2017/11/09 Python
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
Python实现JSON反序列化类对象的示例
2018/01/31 Python
django foreignkey外键使用的例子 相当于left join
2019/08/06 Python
Python学习笔记之字符串和字符串方法实例详解
2019/08/22 Python
python使用pygame实现笑脸乒乓球弹珠球游戏
2019/11/25 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
css3 clip实现圆环进度条的示例代码
2018/02/07 HTML / CSS
HTML5使用Audio标签实现歌词同步的效果
2016/03/17 HTML / CSS
皇马官方商城:Real Madrid Store
2016/09/02 全球购物
函授本科自我鉴定
2013/11/03 职场文书
通用求职信范文模板分享
2013/12/27 职场文书
教师申诉制度
2014/01/29 职场文书
《荷花》教学反思
2014/04/16 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
初中生散播谣言检讨书
2014/11/17 职场文书
2016年小学优秀班主任事迹材料
2016/02/29 职场文书
JavaScript实例 ODO List分析
2022/01/22 Javascript