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 相关文章推荐
Linux下编译安装MySQL-Python教程
Feb 02 Python
Python按行读取文件的实现方法【小文件和大文件读取】
Sep 19 Python
Python面向对象之继承和组合用法实例分析
Aug 27 Python
Python实现Dijkstra算法
Oct 17 Python
python使用matplotlib画柱状图、散点图
Mar 18 Python
【python】matplotlib动态显示详解
Apr 11 Python
Python中的十大图像处理工具(小结)
Jun 10 Python
python批量修改ssh密码的实现
Aug 08 Python
python线程安全及多进程多线程实现方法详解
Sep 27 Python
解决Tensorflow占用GPU显存问题
Feb 03 Python
python绘制汉诺塔
Mar 01 Python
Python的这些库,你知道多少?
Jun 09 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
用PHP4访问Oracle815
2006/10/09 PHP
解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
2013/06/18 PHP
php中用date函数获取当前时间有误的解决办法
2013/08/02 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
jqPlot Option配置对象详解
2009/07/25 Javascript
JS获取dom 对象 ajax操作 读写cookie函数
2009/11/18 Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
2013/09/02 Javascript
JS获取农历日期具体实例
2013/11/14 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
jQuery设置Easyui校验规则(推荐)
2016/11/21 Javascript
Vue实例简单方法介绍
2017/01/20 Javascript
老生常谈jquery id选择器和class选择器的区别
2017/02/12 Javascript
js实现登录注册框手机号和验证码校验(前端部分)
2017/09/28 Javascript
vue弹窗消息组件的使用方法
2020/09/24 Javascript
谈谈React中的Render Props模式
2018/12/06 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
2019/05/10 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
Vue开发环境跨域访问问题
2020/01/22 Javascript
vue v-model的用法解析
2020/10/19 Javascript
Python中安装easy_install的方法
2018/11/18 Python
基于python实现KNN分类算法
2020/04/23 Python
python简单实现最大似然估计&scipy库的使用详解
2020/04/15 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
详解FireFox下Canvas使用图像合成绘制SVG的Bug
2019/07/10 HTML / CSS
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
HSRP的含义以及如何工作
2014/09/10 面试题
个人自我评价和职业目标
2014/01/24 职场文书
个人三严三实对照检查材料思想汇报
2014/09/22 职场文书
2015年创先争优活动总结
2015/03/27 职场文书
北京爱情故事观后感
2015/06/12 职场文书
导游词之绍兴柯岩古镇
2020/01/09 职场文书
MySQL Server 层四个日志
2022/03/31 MySQL