深入理解python try异常处理机制

 更新时间:2016年06月01日 15:51:44   投稿:jingxian  
下面小编就为大家带来一篇深入理解python try异常处理机制。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

深入理解python try异常处理机制

#python的try语句有两种风格
#一:种是处理异常(try/except/else)
#二:种是无论是否发生异常都将执行最后的代码(try/finally)

try/except/else风格
try:
  <语句> #运行别的代码
except <名字>: 
  <语句> #如果在try部份引发了'name'异常
except <名字>,<数据>:
  <语句> #如果引发了'name'异常,获得附加的数据
else:
  <语句> #如果没有异常发生
#try的工作原理是,当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。
#1、如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。
#2、如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。
#3、如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。


try/finally风格
try:
  <语句>
finally:
  <语句> #退出try时总会执行

python总会执行finally子句,无论try子句执行时是否发一异常。
1、如果没有发生异常,python运行try子句,然后是finally子句,然后继续。
2、如果在try子句发生了异常,python就会回来执行finally子句,然后把异常递交给上层try,控制流不会通过整个try语句。
当你想无论是否发生异常都确保执行某些代码时,try/finally是有用的。

#这个在打开文件的时候有用 finally总是在最后close()文件

try 语句子句形式表
except: 捕获所有异常
except name: 只捕获特定的异常
except name,value: 捕获异常和它的附加数据(将异常的信息保存到value,)
except (name1,name2): 捕获任何列出的异常
else: 如果没有异常
finally: 总是执行

>>> try:
  f = open('file.txt')
except IOError, e:
  print e
else:
    print 'wrong'

    
[Errno 2] No such file or directory: 'file.txt'

最新的python版本 支持try/except/finally

try: 1:如果x没有异常,执行z,i
  x 2:如果x有异常, 一:如果except捕捉到异常则执行y,i
except(name): 二:没捕捉到,执行i,然后返回内置异常处理 
  y
else:
  z
finally:
  i

以上这篇深入理解python try异常处理机制就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python 环境变量和import模块导入方法(详解)

    python 环境变量和import模块导入方法(详解)

    下面小编就为大家带来一篇python 环境变量和import模块导入方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Numpy之布尔索引的实现

    Numpy之布尔索引的实现

    本文主要介绍了Numpy之布尔索引的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 深入理解Python虚拟机中调试器实现原理与源码分析

    深入理解Python虚拟机中调试器实现原理与源码分析

    本文主要给大家介绍python中调试器的实现原理,通过了解一个语言的调试器的实现原理我们可以更加深入的理解整个语言的运行机制,可以帮助我们更好的理解程序的执行,感兴趣的可以了解一下
    2023-04-04
  • python进度条库tqdm使用记录(特点和用法)

    python进度条库tqdm使用记录(特点和用法)

    tqdm是一个Python库,用于在命令行界面中创建美观的进度条,以跟踪代码中循环、迭代和任务的执行进度,本文给大家介绍python进度条库tqdm使用记录,感兴趣的朋友跟随小编一起看看吧
    2023-10-10
  • 如何利用python实现图片转化字符画

    如何利用python实现图片转化字符画

    这篇文章主要介绍了如何利用python实现图片转化字符画,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • Python字符串匹配之6种方法的使用详解

    Python字符串匹配之6种方法的使用详解

    这篇文章主要介绍了Python字符串匹配之6种方法的使用详解,在文末给大家提到了python正则表达的说明,感兴趣的朋友跟随小编一起学习吧
    2019-04-04
  • pyqt qlistwidget改变item颜色的操作

    pyqt qlistwidget改变item颜色的操作

    这篇文章主要介绍了pyqt qlistwidget改变item颜色的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • python 6行代码制作月历生成器

    python 6行代码制作月历生成器

    这篇文章主要介绍了python如何用6行代码制作月历生成器,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-09-09
  • 使用python自动办公的实例代码

    使用python自动办公的实例代码

    os模块基本来说就是处理文件个一个模块,或者说接口,说白了就是处理文件。这篇文章主要介绍了python自动办公的实现代码,代码简单易懂,需要的朋友可以参考下
    2021-11-11
  • Python复制目录结构脚本代码分享

    Python复制目录结构脚本代码分享

    这篇文章主要介绍了Python复制目录结构脚本代码分享,本文分析了需求、讲解了匿名函数lambda等内容,并给出了脚本代码,需要的朋友可以参考下
    2015-03-03

最新评论