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 相关文章推荐
pygame学习笔记(4):声音控制
Apr 15 Python
简单学习Python多进程Multiprocessing
Aug 29 Python
Python中表示字符串的三种方法
Sep 06 Python
利用python编写一个图片主色转换的脚本
Dec 07 Python
Python使用matplotlib实现基础绘图功能示例
Jul 03 Python
Python WEB应用部署的实现方法
Jan 02 Python
基于TensorBoard中graph模块图结构分析
Feb 15 Python
Python模拟伯努利试验和二项分布代码实例
May 27 Python
Python 创建守护进程的示例
Sep 29 Python
详解numpy.ndarray.reshape()函数的参数问题
Oct 13 Python
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
Mar 29 Python
一文搞懂如何实现Go 超时控制
Mar 30 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 变量未定义等错误的解决方法
2011/01/12 PHP
php HandlerSocket的使用
2011/05/02 PHP
PHP curl 并发最佳实践代码分享
2012/09/05 PHP
采用ThinkPHP中F方法实现快速缓存实例
2014/06/13 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
2015/07/01 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
php实现微信公众号企业转账功能
2018/10/01 PHP
再次分享18个非常棒的jQuery表格插件
2011/04/10 Javascript
window.parent与window.openner区别介绍
2012/04/12 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
2014/02/04 Javascript
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
Javascript函数式编程简单介绍
2015/10/11 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
iframe中使用jquery进行查找的方法【案例分析】
2016/06/17 Javascript
jQuery弹出遮罩层效果完整示例
2016/09/13 Javascript
JavaScript 字符串常用操作小结(非常实用)
2016/11/30 Javascript
JavaScript cookie详解及简单实例应用
2016/12/31 Javascript
jQuery和CSS仿京东仿淘宝列表导航菜单
2017/01/04 Javascript
jquery animate动画持续运动的实例
2017/11/29 jQuery
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
开发Node CLI构建微信小程序脚手架的示例
2020/03/27 Javascript
Vue封装Axios请求和拦截器的步骤
2020/09/16 Javascript
[40:01]OG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python使用两种发邮件的方式smtp和outlook示例
2017/06/02 Python
Python面向对象之类和对象属性的增删改查操作示例
2018/12/14 Python
python用win32gui遍历窗口并设置窗口位置的方法
2019/07/26 Python
Python sep参数使用方法详解
2020/02/12 Python
Lookfantastic美国/加拿大:英国知名美妆购物网站
2019/03/27 全球购物
业务副厂长岗位职责
2014/01/03 职场文书
网络文明传播志愿者活动方案
2014/08/20 职场文书
社区好人好事材料
2014/12/26 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
安全事故隐患排查治理制度
2015/08/05 职场文书
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android