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网络编程之TCP通信实例和socketserver框架使用例子
Apr 25 Python
Python中的面向对象编程详解(上)
Apr 13 Python
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 Python
Pthon批量处理将pdb文件生成dssp文件
Jun 21 Python
合并百度影音的离线数据( with python 2.3)
Aug 04 Python
Python3实现Web网页图片下载
Jan 28 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
Mar 19 Python
对python list 遍历删除的正确方法详解
Jun 29 Python
元组列表字典(莫烦python基础)
Apr 03 Python
Python实现i人事自动打卡的示例代码
Jan 09 Python
Python环境搭建过程从安装到Hello World
Feb 05 Python
PyTorch 如何自动计算梯度
May 23 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 adodb连接mssql解决乱码问题
2009/06/12 PHP
一步一步学习PHP(8) php 数组
2010/03/05 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
Jquery实战_读书笔记1—选择jQuery
2010/01/22 Javascript
js对象的构造和继承实现代码
2010/12/05 Javascript
基于Jquery的淡入淡出的特效基础练习
2010/12/13 Javascript
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
2013/07/13 Javascript
js jq 单击和双击区分示例介绍
2013/11/05 Javascript
JS去除字符串两端空格的简单实例
2013/12/27 Javascript
jquery 绑定回车动作扑捉回车键触发的事件
2014/03/26 Javascript
node.js中Socket.IO的进阶使用技巧
2014/11/04 Javascript
jQuery选择器用法实例详解
2015/12/17 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
Javascript操作表单实例讲解(下)
2016/06/20 Javascript
如何解决hover在ie6中的兼容性问题
2016/12/15 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
Vue中保存数据到磁盘文件的方法
2018/09/06 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
在vue-cli3中使用axios获取本地json操作
2020/07/30 Javascript
[35:44]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG
2014/05/26 DOTA
详解Python中的多线程编程
2015/04/09 Python
Python文档生成工具pydoc使用介绍
2015/06/02 Python
python魔法方法-属性访问控制详解
2016/07/25 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
2017/07/12 Python
对Python 获取类的成员变量及临时变量的方法详解
2019/01/22 Python
python实现DEM数据的阴影生成的方法
2019/07/23 Python
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
仓库理货员岗位职责
2013/12/18 职场文书
房地产开发计划书
2014/01/10 职场文书
学生党员的自我评价范文
2014/03/01 职场文书
法定代表人授权委托书
2014/04/04 职场文书
2014党员学习习主席讲话思想汇报
2014/09/15 职场文书
审计局班子四风对照检查材料思想汇报
2014/10/07 职场文书
python实现自动化群控的步骤
2021/04/11 Python
Mybatis-plus配置分页插件返回统一结果集
2022/06/21 Java/Android