范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Python入门精华异常处理及其中的finally关键字的理解(超详细)

  python中的异常一、 异常的概念:错误和异常:
  在python中会遇到两种错误,一种,是==语法错误==,这种错误不能被解释器容忍,必须更改为正确语法后程序才能运行;而另外一种,是在==程序运行过程中出现的错误==,诸如==NameError==,==TypeError==等此类错误,有错误名称和行号以及报错内容的错误,称之为==异常==。二、异常处理的基本方法:try: 	error_statement except [(ExceptionName1,ExceptionName2 ...) [as ...]]: 	do_Excepttion_statement1 except [(ExceptionName1,ExceptionName2 ...) [as ...]]: 	do_Excepttion_statement2 except [(...) [as ...]]: 	... else: 	nothing_of_Exception_statement finally: 	other_statement
  名词解释:
  []:方括号内的内容不必一定出现
  try:异常捕获块,有且仅有一个
  except:异常处理块,可以有多个,且每个可以同时处理多种异常;不必一定存在
  else:在未捕获到异常时,进入else;else可可选的,不必一定存在
  finaly:不论try有没有捕获到异常都会进入的块,这里很多同学没有深刻体会到它的用途,只是单纯认为,此关键字不是必须的,没有那么重要,这个是讨论的一点,帮助各位童鞋理解加深印象。
  as:为各种异常进行一个起别名额功能。
  三、异常处理的基本流程:
  1、首先执行try中的代码块(error_statement),如果代码执行过程中出现异常,python会立刻生成一个对应的异常对象,并且将该异常上报解释器,由解释器获得异常的过程,称之为==异常捕获==。
  2、如果==捕获到异常==,会立刻进入异常处理流程(==此时在try中异常出现以后的代码不会再运行==),即except关键字引导的块,根据关键字后边的ExceptionName来==自上而下由左及右==地逐个检查是否有对应的异常名称,如果有则进入对应的except模块,执行==其中的do_Excepttion_statement代码块==;如果没有检测到匹配的异常名称则==不会进入任何except块==,代码会继续向下运行。
  3、else流程:在try中未检测到任何异常才会进入else,童鞋们可能会有疑问?是没有检测到异常,还是except没有包含该异常?注意~~这是两个概念,前者是没有异常,后者是有异常但是没有进行except处理。答案是,没有检测到任何异常(代码完全OK)才会进入else。示例如下:try:     a = 1     print(a/0)  #此处会有ZeroDivisionError异常 except NameError:  #处理的except块中未包含ZeroDivisionError异常     print("name is error!") else:     print("nothing...") #以上代码会出现: """ Traceback (most recent call last):   File "F:/PycharmProjects/class_obj/class_one.py", line 94, in      print(a/0)#此处会有ZeroDivisionError异常 ZeroDivisionError: pision by zero """ #并不会进入else中
  4、except流程:
  此处主要强调在最上边例子中的except[(ExceptionName1,ExceptionName2 ...) [as ...]]:的理解,‘[ ]’上边提到过,是代表可以没有;那么,童鞋写了如下代码,看看两种代码的结果是否相同呢?#代码一: try:     a = 1     print(a/0) except:     print("name is error!") else:     print("nothing...") #代码二: try:     a = 1     print(a/0) else:     print("nothing...")
  首先,需要搞清楚,代码二是有语法错误的,这个必须得改正,问题在于else不能和try搭配,只能和except;第二点,这个是重点,只写except和什么都不写之间有没有区别?答案是肯定的,什么都不写代表不进行处理,而只写 except :’ 相当于 ==‘except Exception:’,这种写法意思是说万能异常处理,即Exception这种异常是所有异常的统称,所以如上的代码一是势必会打印‘name is error’这句话。
  5、finally流程(重点) :童鞋们往往在有些时候比较难理解finally的存在的意义,但是对于这样的流程,大家却都知道无论try是否捕获到异常,都会进入finally流程’;那么接下来,我们细细品一品这个sao气外漏的fianlly究竟为何如此之sao。
  5.1 fianlly: 其实这玩意有个冠冕堂皇的功能:垃圾处理机制,说白了,如果你打开了一些物理文件,最终,是需要finally来进行关闭的(有同学就说了,那不写在finally里边不行吗,也可以。)
  5.2究竟如何理解?示例如下:#一切正常如初的‘傻瓜’例子(一个好看的皮囊): try:     a = 1     print(a/0) except ZeroDivisionError as e:     print(str(e),#pision by zero           repr(e),#ZeroDivisionError("pision by zero",)           e.args)#("pision by zero",) finally:     print("final") #得到结果为: """ pision by zero ZeroDivisionError("pision by zero",) ("pision by zero",) final """  #藏身之处(一个龌龊的灵魂): try:     a = 1     print(a/0) finally:     print("final") #和下边代码什么区别呢? #万恶之源: try:     a = 1     print(a/0) print("final") #有很多初学者认为二者没有结果上的区别,但是,世事难料: #藏身之处: """ Traceback (most recent call last):   File "F:/PycharmProjects/class_obj/class_one.py", line 94, in      print(a/0) ZeroDivisionError: pision by zero final """ #万恶之源: """ 哈哈哈,这他妹的就是逗逗你们,这是语法错误!!!! try之后一定要有except、finally中的任何一个哦。换句严肃点的来说, 藏身之处很神奇哦,仔细想想,为什么报错了还能打印finally中的内容呢? 这就是finally最强大的地方!!! """
  5.3 总结:
  当 try 块中代码发生异常,导致程序崩溃时,在崩溃前 Python 解释器也会执行 finally 块中的代码

Python入门题041比较两个列表的异同题目给出2个列表,1,2和2,3。输出他们的相同元素,和不同元素。结果分别为2和1,3pythonlist集合操作异或操作视频教程Python入门题041比较两个列表的异同代码1l我是真的不明白并且非常讨厌,现在的有些手机为什么用玻璃背壳,难道是自信的认为这样很帅?我曾经拿着iphone6,在高铁上电话打不出去,网也上不了。看着身边拿着华为的几位同事上网刷剧打电话都不耽误。我陷入了深深的思考中,装X却被同事取笑,说我买高档手机是拿来当装饰品的java提供的线程池java提供的线程池Java中默认实现好的线程池又有哪些呢?今天就给大家分享一下Java中默认实现了的线程池,废话不多说,我们就一起直接看一下吧。SingleThreadExecu为什么现在打滴滴越来越慢,好长时间打不到?为什么现在打滴滴越来越慢,好长时间打不到呢?我就是兼职跑滴滴的,下图为证,是我这几个月的流水我以滴滴司机的立场来谈谈原因,主要有以下几点司机没利润。由于平台派单规则,3公里以内都得为什么说光刻机难以制作?光刻机是芯片制造中必不可少的精密设备。其难度甚至超过航空发动机。首先是在技术上的难度光刻机可以说每个部件都是科技含量很高,步步困难重重。瓶颈主要集中在透镜掩膜版光源能量控制器等。下过几年计算机专业将烂大街呢,为什么?儿子今年大一计算机专业?计算机专业人才不会饱和,只是分工越来越细,要求越来越高,工资也会随着所从事的具体工作具体岗位而定。拿尖端的来说,华为够牛的吧,它还在不断地说需要芯片人才,需要创新人才。拿日常的来说三星GalaxyS22明年春节前后发布梦幻配置,苹果表示压力很大由于上一代三星GalaxyS21功耗发热问题饱受用户的吐槽,表示骁龙888发热非常严重,不少三星用户表示想等GalaxyS22,根据最新的消息称,三星GalaxyS22预计将在明年LCD永不为奴的背后究竟是什么前段时间,Redmi产品总监王腾在微博上与网友互动时的一句话引起了我的注意想要LCD旗舰可以考虑RedmiK30S至尊版,现在还有货。咋的,都2021年了还在推荐去年的旗舰呢?其实曝Windows11致使游戏性能暴跌,iPhone12让路新机跌至爱疯价Windows11正式发布,你更新了吗?如果您使用的是AMD锐龙处理器并且喜欢玩游戏,那么您应该等待。AMD和微软官方今天宣布了两个AMD处理器在Windows11系统上的兼容性问什么手机实用?过不了过久就是一年一度的双十一,手机厂商么每年都会发布自家双十一当天的从成绩,证明自己,国产手机现在基本都还停留在用出货量证明自己的层面,还没有哪一家开始用利润证明自己。往往在双十助听器只佩戴一个,跟人沟通时有障碍吗?如果你的听力有一只耳朵正常,那就可以戴一个,如果两个耳朵都有听力损失,那就必须要两个耳朵同时佩戴。双耳配戴可以提高语言的清晰度,听声音是立体声,假如你只带一个就好像用一只眼睛看世界
OceanBase的世界第一让人心服口服5月21日,被誉为数据库领域世界杯的数据库基准测试TPCC官网更新了最新结果,支付宝自研数据库OceanBase打破去年自己创造的世界纪录,性能分数首次突破亿级大关达到7。07亿t快手在520那天是怎么给你送男友的官宣官宣了,我男朋友帅吧。今天是520网络情人节,数万人在快手官宣脱单,这是怎么做到的?原来是快手上线了一款视频特效,让单身的小伙伴们瞬间甜蜜分身,顺利脱单。这是快手为用户准备的一Google老大做硬件实在太难了啊最近Google的旗舰手机产品Pixel总是传出各种坏消息,员工离职,产品被吐槽,销量不佳,仿佛Google对其手机产品的发展路线已经相当不满意了。北京时间今天凌晨,Google首征战2020,不忘初心,砥砺前行2020年4月8日下午4时,紫藤花开集团征战2020红蓝股大会暨2020年第一季度总结表彰大会在柏蔓艺术花园酒店隆重召开。春风得意马蹄疾,一日看尽长安花。大会在一部记录集团点点滴滴四万亿来袭?不,24万亿大投资来了稳经济的大招来了。据每日经济新闻报道,截至目前,已有河南云南福建四川重庆陕西河北等15省份推出重点项目投资计划,2020年度投资规模超6万亿元,其中同步公布总投资规模的9个省份,总患者服务管理RPA机器人面对众多患者,医院不但要提高诊疗技术水平,还应该不断优化患者服务管理措施,这样不但可以为患者合理配置诊疗服务资源,还节省了时间和费用,提高患者的满意度。由于医院每天要应对的患者需求紫藤花开燃爆五城,一级粉煤灰火爆预售中2020年4月16日,紫藤花开集团与陕西某大型能源公司就粉煤灰战略合作项目举行了隆重的签约仪式。双方共同签署了战略合作一站式协议,由此标志着紫藤花开集团就粉煤灰市场的一站式服务体系砂石价格涨幅近100!大半个中国陷入砂荒2018年以来全国陆续出现砂荒,部分地区砂石价格涨幅近100,沿海地区已开始进口河砂。根据调查发现,地方政府对砂石资源认识性不足新旧动能转换期存在原料供应缺口,加之可替代的机制砂开被中国土豪救活的豪车,你知道有哪些吗?你知道吗,这款豪车在国外卖到停产,全靠中国人救活,没有中国土豪就没有他。这就是三大豪车巨头之一的迈巴赫。曾经的迈巴赫在外国人眼里价格又贵产品又少,销量一直不好,到了2011年因为业患者报销管理及病情跟踪RPA机器人患者报销管理及病情跟踪机器人患者在完成医治,恢复健康后,需要办理出院手续,其中最为复杂的就是医保报销结算。以前患者办理医保报销时,需要在几个科室来回跑,开具各种票据证明,医院也需要央行银保监会证监会等多部门联合发声,鼓励发展供应链金融3月22日,国务院新闻办举办新闻发布会,邀请中国人民银行副行长陈雨露,中国银保监会副主席周亮,中国证监会副主席李超,国家外汇局副局长宣昌能,就应对国际疫情影响维护金融市场稳定的有关