位置: 编程技术 - 正文

关于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中的字符串必须写在一对双引号中)

  • 年应税销售额是利润表中的营业收入吗
  • 办公楼出租价格怎么算
  • 算税负是用含税的吗
  • 含税金额和开票金额
  • 出租场地属于什么营业范畴
  • 怎么确定开票项目是否属于经营范围
  • 对公账户转个人账户
  • 居民企业参股外国企业信息报告填写
  • 企业利润表的主要内容
  • 增值税发票密码忘记了怎么办
  • 预付房租收到发票后如何做账
  • 购进二手办公设备如何进行入账?
  • 其他应付款重分类到哪个科目
  • 房产税计税依据房产原值怎么算
  • 境外所得抵免税额是什么意思
  • 刻章发票可以抵税吗
  • 年底员工聚餐
  • 季节性停工算作固定资产停止使用吗?
  • 固定资产验收单图片
  • 租赁服务可以享受加计抵减吗
  • 个人出租车辆给公司个人所得税
  • 研发产品对外销售研发材料不得加计扣除分录
  • 虎杖的养殖方法和用量
  • 合并范围外关联方交易是否抵消
  • 建筑业产值填哪个数据
  • php mysql_real_escape_string函数用法与实例教程
  • 公司整体收购如何交税
  • pddpic是什么文件
  • 药品生产企业应建立
  • 企业购入软件会计分录
  • 股权投资收益需要缴纳企业所得税吗
  • 二手车销售发票的开具怎么处理?
  • 稽查查补销售额后补开票如何申报
  • 圣安德鲁斯市
  • vuenode前后端交互的方式
  • 企业销售旧固定产品
  • 代理进口业务应纳的关税
  • 帝国cms吧
  • 公司网站设计怎么做
  • 公司注销前的资产负债
  • 营业外支出账户核算的主要内容有
  • 收到退回的文化事业建设费会计分录
  • 短期流动负债计算公式
  • 个体工商户财务怎么做账
  • 二手车如何计提折旧费
  • 单位发放职工2000元慰问金申请怎么写
  • 公司清算后能不能转让
  • 固定资产的资本化和费用化
  • 期初固定资产算收入吗
  • 固定资产安装费计入入账价值吗
  • 开给个人的普通增值税
  • 建筑公司可以收工程款发票吗
  • 房地产开发企业销售自行开发的房地产项目
  • 工业企业生产什么
  • mysql实现合并同一ID对应多条数据的方法
  • 非常详细的魔方公式图解
  • mysql四个事务的四个特性
  • Linux/Mac MySQL忘记密码命令行修改密码的方法
  • mysql5.7.22安装
  • linux中,什么命令可以控制口令的存活时间?
  • 强制关闭mac系统的快捷键
  • win10周年版
  • xp系统如何找到bitlocker
  • 64位ubuntu8.04 安装QQ
  • win7手动更新在哪里设置
  • python线程池最大数量
  • js 模拟滑动
  • js判断元素是否显示
  • Linux中的host命令应用实例详解
  • unity3d官方教程
  • node中的ejs
  • Unity3D游戏开发(第2版)
  • javascript零基础入门
  • python查询系统
  • jquery中点击事件点击没动静
  • iterator python
  • 税务局六大攻坚
  • 鸿蒙2.0哪个版本续航好
  • 交强险和车船税网上购买
  • 国家电子税务登录入口
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设