位置: 编程技术 - 正文

关于Python中异常(Exception)的汇总(python的异常处理语句)

编辑:rootadmin

推荐整理分享关于Python中异常(Exception)的汇总(python的异常处理语句),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python中异常的概念,python中异常处理结构,python中异常处理结构,python的异常类型及处理,python的异常处理语句,python中异常处理结构,python的异常处理语句,关于python异常处理,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

Exception类是常用的异常类,该类包括StandardError,StopIteration, GeneratorExit, Warning等异常类。python中的异常使用继承结构创建,可以在异常处理程序中捕获基类异常,也可以捕获各种子类异常,python中使用try...except语句捕获异常,异常子句定义在try子句后面。

Python中的异常处理

异常处理的语句结构

说明

else和finally是可选的,可能会有0个或多个except,但是,如果出现一个else的话,必须有至少一个except。 不管你如何指定异常,异常总是通过实例对象来识别,并且大多数时候在任意给定的时刻激活。一旦异常在程序中某处由一条except子句捕获,它就死掉了,除非由另一个raise语句或错误重新引发它。

raise语句

raise语句用来手动抛出一个异常,有下面几种调用格式:

raise #可以在raise语句之前创建该实例或者在raise语句中创建。 raise #Python会隐式地创建类的实例 raise name(value) #抛出异常的同时,提供额外信息value raise # 把最近一次产生的异常重新抛出来 raise exception from E

例如:

抛出带有额外信息的ValueError: raise ValueError('we can only accept positive values')

当使用from的时候,第二个表达式指定了另一个异常类或实例,它会附加到引发异常的__cause__属性。如果引发的异常没有捕获,Python把异常也作为标准出错消息的一部分打印出来:

比如下面的代码:

执行的结果如下:

关于Python中异常(Exception)的汇总(python的异常处理语句)

assert语句

assert主要用来做断言,通常用在单元测试中较多,到时候再做介绍。

with...as语句

with语句支持更丰富的基于对象的协议,可以为代码块定义支持进入和离开动作。

with语句对应的环境管理协议要求如下:

环境管理器必须有__enter__和__exit__方法。

__enter__方法会在初始化的时候运行,如果存在ass子在, __enter__函数的返回值会赋值给as子句中的变量,否则,直接丢弃。

代码块中嵌套的代码会执行。

如果with代码块引发异常, __exit__(type,value,traceback)方法就会被调用(带有异常细节)。这些也是由 sys.exc_info返回的相同值.如果此方法返回值为假,则异常会重新引发。否则,异常会终止。正常 情况下异常是应该被重新引发,这样的话才能传递到with语句之外。

如果with代码块没有引发异常, __exit__方法依然会被调用,其type、value以及traceback参数都会以None传递。

下面为一个简单的自定义的上下文管理类。

如果注销到上面的raise语句,那么会正常退出。

在没有注销掉该raise语句的情况下,运行结果如下:

异常处理器

如果发生异常,那么通过调用sys.exc_info()函数,可以返回包含3个元素的元组。 第一个元素就是引发异常类,而第二个是实际引发的实例,第三个元素traceback对象,代表异常最初发生时调用的堆栈。如果一切正常,那么会返回3个None。

Python的Builtins模块中定义的Exception

总结

标签: python的异常处理语句

本文链接地址:https://www.jiuchutong.com/biancheng/381417.html 转载请保留说明!

上一篇:python:socket传输大文件示例(python socket sendto)

下一篇:Python中的字符串操作和编码Unicode详解(python中的字符串必须写在一对双引号中)

  • 原材料报废可以退税吗
  • 农民专业合作社属于什么企业类型
  • 报表中存货包括什么科目
  • 应收应付账务处理工作具体做哪些
  • 可供出售金融资产公允价值变动
  • 未开具发票负数的原因
  • 视同销售的八种情况
  • 会计工作的基本认识
  • 生产企业固定资产折旧
  • 当期软件产品可抵扣进项税额 留抵
  • 应付账款预收账款
  • 买了两个月社保能用多少医药费
  • 地税有哪些税种类型
  • 金税三期收回长期投资所得税如何申报?
  • 销售开发后的产品
  • 实收资本记错账如何调整账面价值
  • 开发票冲销
  • 付了款没有收到发票
  • 简易计税分包款进项税可以抵扣吗
  • 利润表营业成本是负数是什么原因
  • 负债类科目的分类
  • 高新技术企业改革
  • windows7怎么说
  • win101903怎么查看
  • 发生坏账账务处理
  • php语言标记风格有四种,分别是
  • 神舟战神k670c-g4e1游戏笔记本怎么样?
  • 企业所得税征收方式有哪些?
  • 股权投资差额怎么算
  • 基于Java+SpringBoot+Vue+uniapp微信小程序零食商城系统设计和实现
  • 异地工程款预缴
  • 贷款利息发票可以随便开吗
  • 结转各项成本的会计分录
  • 对方开给我的专票,我要报税吗?
  • 其它应付款的审计内容
  • 企业保持存货的必要性
  • 残保金季度申报如何计算
  • 计算业务招待费扣除限额的基础包括营业外收入
  • 进项票可以抵扣企业所得税吗
  • 股票期权的所得税处理
  • 小规模纳税人购进税控收款机
  • 利息收入应该填什么科目
  • 卖旧固定资产计入哪个科目
  • 单式记账法缺点是什么
  • 以现金形式发工资的公司
  • 宣传费抵扣
  • 小规模纳税人注册资金要求多少
  • 母公司帮子公司代缴社保
  • 主营业务成本与其他业务成本的区别
  • 商业批发是什么意思
  • fedora phpMyAdmin 安装方法及介绍
  • 清华同方笔记本无线网络开关在哪
  • win10应用默认
  • win10如何删除pin登录密码
  • 苹果笔记本安装win10
  • rhel配置网卡文件和图形界面
  • win1020h2正式版
  • lowleverfatal error怎么解决
  • windows8怎么设置开机启动项
  • Win10 Mobile 10586.71或时最适合WP8.1升级的Win10的版本
  • linux如何使用vim编写程序
  • jQuery实现ctrl+enter(回车)提交表单
  • python制作数字拼图
  • opengl画直线
  • jquery validate表单内容怎么添加边框
  • 网卡流量怎么计算
  • 深入理解计算机系统
  • .nodejs
  • jquery里的ready是什么意思
  • 3ds 俄罗斯方块
  • 详解杭州亚运会会徽和口号
  • jquery怎么获取
  • 国企巡查都巡查哪些内容
  • 白盘怎么开具红字专用发票
  • 宁波增值税普通发票有几联发票
  • 如何在电子税务局申报社保
  • 耕地占用税是土地增值税开发成本吗
  • 关税下降的好处
  • 厦门税务地区编号
  • 报税卡丢了要怎么处理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设