1.try:

  command

except 错误类型,记录错误信息变量:

  command

finally:

  command

  try...finally的用处是无论是否发生异常都要确保资源释放代码的执行。一般来说,如果没有发生错误,执行过try语句块之后执行finally语句块,完成整个流程。如果try语句块发生了异常,抛出了这个异常,此时就马上进入finally语句块进行资源释放处理。如下从几个细节讨论finally的特性。

  1)、try中的return: 当在try语句块中含有return语句时,执行到return并不会直接返回,而是由Python忠实的再去执行finally语句块之后再执行return。(by gashero)从这里可以看出,只要程序没有突然终止,则finally中的资源释放语句一定会执行。无论发生什么异常都会执行到finally语句块中的代码。

  2)、finally之后呢? 实际测试看来,finally之后,try语句块中抛出的异常并没有被处理,而是直接被抛出到try...finally语句块之外了。并且是在finally语句块执行之后继续抛出这个异常的。 所以为了更好的处理这个异常,可以使用两层嵌套try语句块。内层的try语句块使用try...finally形式,确保资源释放代码的执行。外层try语句块使用try...except形式,可以很好的识别异常形式,并且分别处理。

  3)、如果希望直接finally掉呢? 有些时候在处理了finally中的资源释放之后就不再需要继续处理抛出的异常了,在这种情况下可以考虑在finally语句块中使用return语句。这样在资源释放之后直接返回,try语句块抛出的错误就不会继续向外抛出了。(by gashero)也就是节省了上面一条的外层try...except语句块了。当然,这样的后果是根本就不知道抛出过什么异常。

  最后谈一条except子句需要注意的事情,就是多个except子句截获异常时,如果各个异常类之间具有继承关系,则子类应该写在前面,否则父类将会直接截获子类异常。放在后面的子类异常也就不会执行到了

2.raise 抛出异常

  raise 异常类型(异常信息)

转载于:https://www.cnblogs.com/wangyongbin/p/3702731.html

python学习笔记十——异常处理相关推荐

  1. 【Python学习笔记】异常处理try-except

    Python异常处理 我们一般使用try-except语句来进行异常处理. 使用except Exception as err可以统一捕捉所有异常,而也可以分开处理单个异常. # 分开捕捉单个异常tr ...

  2. python 学习笔记(十二) 文件和序列化

    python 文件读写和序列化学习. ## python文件读写 `1 打开并且读取文件` f = open('openfile.txt','r') print(f.read()) f.close() ...

  3. Python学习笔记十 IO编程

    参考教程:廖雪峰官网https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 IO编程 I ...

  4. python 学习笔记十九 django深入学习四 cookie,session

    缓存 一个动态网站的基本权衡点就是,它是动态的. 每次用户请求一个页面,Web服务器将进行所有涵盖数据库查询到模版渲染到业务逻辑的请求,用来创建浏览者需要的页面.当程序访问量大时,耗时必然会更加明显, ...

  5. python学习笔记(十 三)、网络编程

    最近心情有点儿浮躁,难以静下心来 Python提供了强大的网络编程支持,很多库实现了常见的网络协议以及基于这些协议的抽象层,让你能够专注于程序的逻辑,而无需关心通过线路来传输比特的问题. 1 几个网络 ...

  6. python学习笔记(十六)-Python多线程多进程

    一.线程&进程 对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程, ...

  7. 【懒懒的Python学习笔记十】

    在程序运行期间遇到错误,Python会报错.Python使用被称为异常的特殊对象来管理程序运行期间发生的错误.每当发生一个错误,Python会创建一个异常对象,如果你编写了处理该异常的代码,程序将继续 ...

  8. python学习笔记十-文件操作

    对文件操作流程 1.打开文件,得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 操作如下: 花间一壶酒,独酌无相亲. 举杯邀明月,对影成三人. 月既不解饮,影徒随我身. 暂伴月将 ...

  9. python学习笔记(十五) -- 枚举

    枚举 枚举的作用就是定义一组 数据形式为 dict 但却又不可变的常量 比如我们定义一个类,或者定义一个dict ,类中的成员变量可以被更改,而且类又可以被实例化,dict 里面的值也可以被更改. 如 ...

  10. python学习笔记十五:日期时间处理笔记

    #-*- coding: utf-8 -*- import datetime#给定日期向后N天的日期 def dateadd_day(days):d1 = datetime.datetime.now( ...

最新文章

  1. 智能车竞赛技术报告 | 节能信标组 - 华南理工大学 - 华工雨花队
  2. 且看微软的.Net和Sun公司的J2EE如何对垒
  3. hibernate 多对多(many-to-many)
  4. C十三:strcmp函数,比价字符串
  5. ASP.NET 链接 Access 数据库路径问题最终解决方案
  6. linux系统开发环境配置
  7. Collect proper diagnostic data is very important
  8. scrapy框架_入门Scrapy框架看这一篇文章就够了
  9. 继承的方式编写日向家族
  10. 四个角不是直角的四边形_三个角为直角的四边形一定是矩形吗?
  11. WannaCry深度详细分析报告 转
  12. Objective-c nil, Nil, NULL和NSNull的区别
  13. 2021年下半年《信息系统项目管理师》真题
  14. Django表单系统
  15. vue---vue+elementUI完成注册及登陆
  16. 关于Vs配置Opencv出现的错误“ 0x000007fefdf6a06d (KernelBase.dll) 处最可能的异常: Microsoft C++ 异常:”!!!
  17. VBS教程--摘自百度百科
  18. 把QUERY的输出结果作为数据源_小七_新浪博客
  19. php msg oob,MSG_OOB winsock
  20. 艾美智能影库服务器ip,艾美影库 篇一:艾美影库 | 精评丨性能与资源可兼得 艾美MS-200 高清影库...

热门文章

  1. 用python画圆形彩虹_python学习之GUI(pygame)
  2. 在C7000+VMware vSphere5.5环境中的基础架构服务器部署实例
  3. python 3 并发编程之多进程 multiprocessing模块
  4. 深度学习应用:入门篇(下)
  5. mysql分表和表分区详解
  6. Mac 显示和隐藏文件
  7. VC++ 6.0 C8051F340 USB 通信 CAN 数据解析
  8. Linux9.0下构建FTP服务器
  9. 主机动手系列 — 不同CPU,不同命令,怎么管理HP-UX服务器
  10. PHP几种常见魔术方法与魔术变量解析 1