本文实例讲述了python异常处理、自定义异常、断言原理与用法。分享给大家供大家参考,具体如下:

什么是异常:

当程序遭遇某些非正常问题的时候就会抛出异常:比如int()只能处理能转化成int的对象,如果传入一个不能转化的对象就会报错并抛出异常

常用的异常有:

ValueError :传入无效的错误的参数

TypeError:进行了对类型无效的操作

IndexError:序列中没有此索引

NameError:使用未定义的变量

更多更具体的异常可以参考Python官方文档

,读读官方文档更健康

异常的处理:

python使用try,except,finally,else来处理异常,它们各自意义如下:

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里捕获多个异常,但需要用括号包裹多个异常,并且即使同时捕获多个异常,由于异常会导致程序发生终止,所以只会捕获到一个异常,所以只需要一个获取异常返回对象的变量:

如果不确定捕获什么异常,可以使用异常的基类Exception【更高级的可以使用BaseException】,并且最好把Exception放在所有except的最后:

自定义异常:

使用raise可以抛出自定义的异常信息

只要继承了Exception,就可以定义自己的异常类:

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异常处理、自定义异常、断言原理与用法分析相关推荐

  1. python断言失败_python异常处理、断言

    异常处理基本语法 捕获异常 try: 语句1 语句2 ... except ERRNAME as e: print(e) #尝试执行语句,捕获到ERRNAME异常时打印异常信息e 捕获多个异常 try ...

  2. python适配器模式角色_Python设计模式之适配器模式原理与用法详解

    本文实例讲述了Python设计模式之适配器模式原理与用法.分享给大家供大家参考,具体如下: 适配器模式(Adapter Pattern):将一个类的接口转换成为客户希望的另外一个接口. 下面是一个适配 ...

  3. python装饰器作用和功能_Python装饰器原理与用法分析

    这篇文章主要介绍了Python装饰器原理与用法,结合实例形式分析了Python装饰器的概念.原理.使用方法及相关操作注意事项,需要的朋友可以参考下 本文实例讲述了Python装饰器原理与用法.分享给大 ...

  4. python装饰器原理-Python装饰器原理与用法分析

    这篇文章主要介绍了Python装饰器原理与用法,结合实例形式分析了Python装饰器的概念.原理.使用方法及相关操作注意事项,需要的朋友可以参考下 本文实例讲述了Python装饰器原理与用法.分享给大 ...

  5. python异常处理_汇总三大python异常处理、自定义异常、断言原理与用法分析

    本文实例讲述了python异常处理.自定义异常.断言原理与用法.分享给大家供大家参考,具体如下: 什么是异常: 当程序遭遇某些非正常问题的时候就会抛出异常:比如int()只能处理能转化成int的对象, ...

  6. python断言语句_Python中的断言(Assertions in Python)

    Python中的断言(Assertions in Python) 断言是一种完整性检查,您可以在完成程序测试后打开或关闭. 想到断言的最简单方法是将它比作一个raise-if语句(或者更准确,即使是i ...

  7. python定义私有变量的方法_Python面向对象程序设计之私有变量,私有方法原理与用法分析...

    本文实例讲述了Python面向对象程序设计之私有变量,私有方法原理与用法.分享给大家供大家参考,具体如下: 私有变量,私有方法:python的私有化是为了规划私有属性,避免非相关的访问[假如!我有老婆 ...

  8. python面向对象三大特性_Python面向对象之多态原理与用法案例分析

    本文实例讲述了Python面向对象之多态原理与用法.分享给大家供大家参考,具体如下: 目标 多态 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 定义类的准则 继承 ...

  9. python中的多态用法_Python面向对象之多态原理与用法案例分析

    本文实例讲述了Python面向对象之多态原理与用法.分享给大家供大家参考,具体如下: 目标 多态 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 定义类的准则 继承 ...

最新文章

  1. LeetCode简单题之比赛中的配对次数
  2. 织梦html地图插件,织梦dede网站地图xml生成插件(图文教程)
  3. SAP WM 2-Step Picking流程里创建的Group的分析
  4. 与Jeff Sutherland谈敏捷领导力
  5. Kafka 0.9 新消费者API
  6. 数据结构----归并排序
  7. struts2_20140720
  8. Dev c++6.0下载
  9. 电脑中如何添加环境变量
  10. 十代主板改win7_微星b460主板装win7系统及bios设置教程(支持十代usb驱动)
  11. 计算机专业英语课程内容,《计算机专业英语》课程教学大纲
  12. [12]机器学习_smote算法
  13. 擦黑板特效表白H5源码+非常浪漫/附BGM
  14. 全球排名前10位的广告公司
  15. java 文字转图片且居中
  16. 关于AndroidStudio打包后apk包名乱码的问题
  17. 854计算机基础——备考建议+近年考点汇总
  18. 百度百聘企业简单信息获取
  19. QWERTY,QWERTZ和AZERTY
  20. TESTTESTTESTTESTTESTTEST

热门文章

  1. 求取给定的二叉树的镜像_17---二叉树的镜像
  2. Spring管理Bean的生命周期
  3. 读盘写盘计算机里面的意义,什么叫计算机里的写盘
  4. 第三方分享接口api
  5. C#——实现IComparableT 接口,ArrayLIst调用ArrayLIst.Sort()抛出System.InvalidOperationException异常解决方案
  6. OpenWrt——satisfy_dependencies_for: Cannot satisfy the following dependencies
  7. 2021暑假实习-SSM超市积分管理系统-day03笔记
  8. 网络编程中BIO和NIO的区别
  9. CkEditor批量上传图片(java)
  10. 解决svn图标不显示(绝对有用)