try-except语句

try:
  被检测代码
except Exception [as reason]:
  出现异常后的处理代码
例:
try:
  sum = 1+''
  f=open('未定义文件.txt')
  print(f.read())
  f.close
except OSError as reason:
  print('文件出错啦!错误原因:' + str(reason))
except TypeError as reason:
  print('类型错误' + str(reason))
运行结果:类型错误unsupported operand type(s) for +: 'int' and 'str'

其中第三行到第7行代码未运行,原因是try语句中一旦出现异常,就会直接定位到对应的except语句去,剩下的检测代码不会再被运行

try-finally语句

try:
  被检测代码
except Exception [as reason]:
  出现异常后的处理代码
finally:
  无论如何都会被执行的代码
例:
try:
  f=open('123.txt','w')
  print(f.write('hello'))
  sum=1+'' #此处发生异常会直接跳过f.close()语句,造成写入的数据不能被保存
  f.close()
except (OSError,TypeError):
  print('出错啦!')

所以可以用try-finally语句来避免这种情况,修改:

try:
  f=open('123.txt','w')
  print(f.write('hello'))
  sum=1+'' #此处发生异常会直接跳过f.close()语句,造成写入的数据不能被保存
  f.close()
except (OSError,TypeError):
  print('出错啦!')
finally:
  f.close()

raise语句

自身引发一个异常

try:
  for each in range(3):
    if each==1:
      raise KeyboardInterrupt
      print(each)
except KeyboardInterrupt:
  print('退出啦!')
0
退出啦

assert断言

断言等价于布尔真值得判定,在Python中它们运行时进行判别

断言语句:

assert expression[,arguments]

可以想象成raise if

比如:

assert 1==1

assert len('my list')<10

Python笔记(十五)_异常处理的更多相关文章

  1. Python爬虫(十五)_案例:使用bs4的爬虫

    本章将从Python案例讲起:所使用bs4做一个简单的爬虫案例,更多内容请参考:Python学习指南 案例:使用BeautifulSoup的爬虫 我们已腾讯社招页面来做演示:http://hr.ten ...

  2. [b0030] python 归纳 (十五)_多进程使用Pool

    1 usePool.py #coding: utf-8 """ 学习进程池使用 multiprocessing.Pool 总结: 1. Pool 池用于处理 多进程,并不 ...

  3. Python笔记(十八)_私有属性、实例属性、类属性

    私有属性 如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,就变成了一个私有属性,只有内部可以访问,外部不能直接访问或修改. 这样就确保了外部代码不能随意修改对象内部的状态,这样通过 ...

  4. Python笔记(十四)_永久存储pickle

    pickle模块:将所有的Python对象转换成二进制文件存放 应用场景:编程时最好将大对象(列表.字典.集合等)用pickle写成永久数据包供程序调用,而不是直接写入程序 写入过程:将list转换为 ...

  5. python笔记十五(面向对象及其特性)

    一.面向对象: class(类):一类拥有共同属性对象的抽象:定义了这些对象的属性和方法object(对象):是一个类实例化后的实例,类必须经过实例化才可以在程序中调用: 由于之前学习过java,对类 ...

  6. Java 读书笔记 (十五) Java 异常处理

    捕获异常 使用try 和catch关键字可以捕获异常.try/catch 代码块放在异常可能发生的地方. try/catch 代码块中的代码称为保护代码 ,使用try/catch的语法如下: try ...

  7. Python笔记(十九)_继承

    继承 继承可以把父类的所有功能都直接拿过来,这样就不必从零做起,子类只需要新增自己特有的方法,也可以把父类不适合的方法覆盖重写 多重继承 通过多重继承,一个子类就可以同时获得多个父类的所有功能 > ...

  8. Python笔记(十二)_文件

    文件的打开模式 'r':以只读的方式打开文件(默认) 'w':以写入的方式打开文件,会覆盖已存在的文件 'x':用写入的方式打开文件,如果文件已存在,会抛出异常 'a':用写入的方式打开文件,如果文件 ...

  9. Python第十五天 datetime模块 time模块 thread模块 threading模块 Queue队列模块 multiprocessing模块 paramiko模块 fabric模块

    Python第十五天  datetime模块 time模块   thread模块  threading模块  Queue队列模块  multiprocessing模块  paramiko模块  fab ...

随机推荐

  1. BZOJ 4919 (树上LIS+启发式合并)

    题面 给定一棵n个节点的有根树,编号依次为1到n,其中1号点为根节点.每个点有一个权值v_i. 你需要将这棵树转化成一个大根堆.确切地说,你需要选择尽可能多的节点,满足大根堆的性质:对于任意两个点i, ...

  2. auditd重启失败

    发现auditd 服务有问题 进行重启 systemctl restart auditd Failed to restart auditd.service: Operation refused, un ...

  3. svn登录问题

    转载自: https://www.cnblogs.com/WQX-work24/p/9790260.html 版权归该作者所有.

  4. JS对象总结

    JS对象总结   复习: 1.1 JS中对象有三种:内置对象(数组Array对象.String字符串对象.RegExp正则表达式对象.Math对象). 宿主对象(JS脚本所在的运行环境,目前我们讲的脚 ...

  5. JSP学习(4)

    JSP学习(4) JavaBean简介 符合某种规范的Java类.使用JavaBean的好处是解决了代码重复编写,减少代码冗余,功能区分明确,提高代码的可维护性 JavaBean设计原则 JSP动作元 ...

  6. file 显示文件的类型

    1. 命令功能 file命令是确定文件类型,也可以辨识一些文件的编码格式.通过文件的头部信息来获取文件类型.windows是通过扩展名来确定文件类型. 2. 语法格式 file  [option]  ...

  7. RABBITMQ 协议 AMQP协议

    https://baike.baidu.com/item/rabbitmq/9372144?fr=aladdin https://github.com/CopernicaMarketingSoftwa ...

  8. [CF] 8C Looking for Order

    状压模板题 CF难度2000? 我得好好了解一下CF的难度机制了 反正CF的难度比洛谷真实就好了 Code #include<algorithm> #include<iostream ...

  9. flask之url_for函数

    一:url_for函数 干什么的?传入函数名,得到函数的路由地址(访问视图函数的地址) from flask import Flask from flask import url_for app = ...

  10. 前端VUE环境构建

    https://nodejs.org/en/ 安装node 安装淘宝npm镜像 D:\>cd cnpm D:\cnpm>npm install -g cnpm --registry=htt ...