异常的分类

异常主要分为四大类,所有异常都是类的形式,均继承了BaseException这个类。其中SystemExit为Python的退出异常,KeyboardInterrupt为键盘的中断异常,GeneratorExit为生成器的退出异常。最后一种也是我们通常会遇到的异常Exception普通异常。普通异常包括我们平时会经常遇到的异常类型,如下图所示。

异常捕获

当程序运行过程中发生错误程序就会终止,为了避免这一情况我们需要捕获异常。

try/except

  捕获由Python或你引起的异常并恢复

try/finally

  无论异常是否发生,执行清理行为

在目前的python版本中except和finally可以同时出现,除此之外还有else语句,其后的语句会在程序未发生异常的时候执行,而finally后的语句无论是否发生异常都会执行。

try:print(aaa)#错误代码
except Exception as e:print("错误信息:",e)>>>错误信息: name 'aaa' is not defined

try:# print(aaa)#错误代码print('aaa')#正确代码
except Exception as e:print("错误信息:",e)
else:print("else执行!!")>>>aaaelse执行!!

try:print(aaa)#错误代码# print('aaa')#正确代码
except Exception as e:print("错误信息:",e)
finally:print("finally执行!!")>>>错误信息: name 'aaa' is not defined
finally执行!!try:# print(aaa)#错误代码print('aaa')#正确代码
except Exception as e:print("错误信息:",e)
finally:print("finally执行!!")>>>aaa
finally执行!!

异常抛出

raise语句会手动在代码中触发异常。其功能主要用于程序的调试。

raise NameError>>>
Traceback (most recent call last):File "/home/pyvip/JoePY/home/pyvip/JoePY/test.py", line 58, in <module>raise NameError
NameError

断言

assert语句会有条件的在程序代码中触发异常。assert  条件表达式,当条件表达式返回值为True时,不报错。当条件表达式返回值为False时,报错。报错类型为AssertionError。

assert 1>2>>>
Traceback (most recent call last):File "/home/pyvip/JoePY/home/pyvip/JoePY/test.py", line 59, in <module>assert 1>2
AssertionError

转载于:https://www.cnblogs.com/austinjoe/p/9475615.html

python基础(十):异常和断言相关推荐

  1. 十九. Python基础(19)--异常

    十九. Python基础(19)--异常 1 ● 捕获异常 if VS异常处理: if是预防异常出现, 异常处理是处理异常出现 异常处理一般格式: try: <...............&g ...

  2. Python基础十五:面向对象编程四:高级特性

    Python基础十五:面向对象编程四:高级特性 Python基础系列内容为学习廖雪峰老师Python3教程的记录,廖雪峰老师官网地址:廖雪峰Python3教程 Author:yooongchun Em ...

  3. Python基础十九:多进程

    Python基础十九:多进程 Python基础系列内容为学习廖雪峰老师Python3教程的记录,廖雪峰老师官网地址:廖雪峰Python3教程 Author:yooongchun Email:yooon ...

  4. Python基础(10) - 异常

    Python 异常:程序出现了错误而在正常控制流以外采取的行为 Python中常见的异常: 1. NameError:尝试访问一个未声明的变量 >>> something Trace ...

  5. Python基础 ( 十 ) —— 面向对象(多态、封装、反射、动态导入)

    #面向对象的三大特性 1 继承(上一章的内容) 2 多态 python本身就是多态的 3 封装 # 多态 #不同类的实例化对象,调用同一个方法(执行的逻辑不同),而不用考虑他们具体的类,例如: 字符对 ...

  6. Python基础十四——内置函数和匿名函数

    内置函数: 截止到 python 版本3.6.2,现在 python 一共提供了 68 个内置函数.     Built-in Functions     abs() dict() help() mi ...

  7. python基础十 函数(下)匿名函数、高阶函数、闭包、装饰器

    目录 1. 匿名函数(lambda表达式) 2. 高阶函数 3. 函数的嵌套 4. nonlocal 关键字使用 5. 闭包 6. 装饰器 1. 匿名函数(lambda表达式) 简介 用一句话来表达只 ...

  8. python基础教程----异常

    1.什么是异常 Python用异常对象来表示异常,遇到错误后,会引发异常,如果异常对象并未被处理或捕捉,程序会用所谓的回溯终止执行. 2.按自己的方式出错 如何引发异常,甚至创建自己的异常类型 2.1 ...

  9. Python基础(十八): 类和对象以及它们的属性

    一.类 最简单的经典类结构 class 类名:pass 复制代码 1.定义一个类 class Money:pass 复制代码 类名规范: 驼峰命名法, 并且首字母大写 2.实例化一个对象 创建一个对象 ...

  10. python基础十四之匿名函数

    匿名函数 处理简单问题的简化函数,关键字lambda. # 格式:函数名 = lambda 参数:返回值 anonymity = lambda s: s ** 0.5 print(anonymity( ...

最新文章

  1. python tk messagebox_tkMessageBox
  2. mysql 游标异常_mysql中的游标和异常捕捉
  3. KEIL MDK LIB库文件的制作
  4. 重置SVN用户名与密码,修改SVN的IP地址
  5. 全国计算机二级vb 无纸化,2013年3月全国计算机等级考试二级VB无纸化上机题题库题干及答案解析(2)...
  6. SP1026 FAVDICE - Favorite Dice 期望dp
  7. windosw7 Hosts文件的位置
  8. android studio连接服务端代码,Android studio - 无法连接到LDAP服务器(示例代码)
  9. Ubuntu20.04安装eBPF BCC
  10. String当中的高效函数(优化)
  11. [Unity菜鸟] Character控制移动
  12. DXperience Winforms12.2版的中文使用手册
  13. 63 岁工程师的退休生活:开发一款计算器应用,22 天获 56800 下载!
  14. android es2 es3,良心点评解析九号滑板车es2和es3有什么区别哪个好?老司机揭秘评测如何...
  15. 高通骁龙410e/APQ8016E嵌入式物联网应用处理器解决方案
  16. 如何将域名和网站转入香港主机
  17. 利用代码快速批量取消微博的关注
  18. MacOS启动台(launchpad)缺少应用软件图标
  19. nginx新增conf文件
  20. 运动装备怎么选?运动装备品牌排行榜

热门文章

  1. 基于c的语言开发,基于CC++等高级编程语言开发电子系统的设计自动化系统.doc
  2. java 中的事物怎么配置_java – 在hibernate中如何以编程方式设置事务的隔离级别,或者如何创建具有不同隔离级别的两个事务...
  3. DG Lecture 2 part 1: points, vectors, directional derivative
  4. Dropout抑制过拟合与超参数选择
  5. 无法将该对象添加到ldap服务器_Minecraft 基岩版 Ubuntu服务器搭建(三)
  6. keras版Mask-RCNN来训练自己的目标检测数据集
  7. 聚类算法实现:DBSCAN、层次聚类、K-means、
  8. vue提交mutation_为什么Vuex中必须要通过commit提交mutation?
  9. CentOS8 DNF简介 常用命令以及配置本地yum源
  10. ObjC学习7-C语言特性