python基础20 -------python中的异常处理
一、python程序中的会出现的错误。
1、语法错误:这种错误根本过不了python解释器的语法检测阶段,必须在程序执行之前进行改正。
2、逻辑错误:这种错误虽然过了语法检测阶段但是程序在执行的过程中会报错,这就产生了程序的异常。
3、python中程序异常的种类:
IndentationError 语法错误,代码没有正确对齐。
SyntaxError Python代码非法,代码不能编译(语法错误)。
AttributeError 试图访问一个对象没有的属性(未知的对象属性)。
IOError 输入/输出异常,基本上是无法打开文件。
OSError 操作系统产生的异常。
ImportError 无法引入模块或包,基本上是路径问题或名称错误。
IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]。
KeyError 试图访问字典里不存在的键。
KeyboardInterrupt Ctrl+C被按下。
NameError 尝试访问一个不存在的变量。
TypeError 传入对象类型与要求的不符合(不同类型间的无效操作)。
UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量, 导致你以为正在访问它。 ValueError 传入一个调用者不期望的值,即使值的类型是正确的。
ZeroDivisionError 除数为零
4、python解释器抛出异常的格式:

二、异常处理办法
1、什么是异常处理:
当python解释器检测到语法错误或者是执行程序时遇到错误语法,那么该解释器就会出发该错误语法异常,程序员会编写特定代码来捕捉这类异常,当成功捕捉之后会进入另一个分支,执行分支内的代码,让程序不会崩溃,这就是异常处理。
2、为什么要异常处理?
当python解释器检查错误语法时会抛出异常终止程序,但是当我们异常处理了之后程序会继续处理后面的代码。
3、如何进行异常处理?
之前学习过的if判断式可以进行异常处理,如图所示:

注:虽然if判断式可以进行异常处理,但是if判断式是在异常抛出之前进行一个异常的判断,如果有了则执行后面代码,而且只能对同一 个错误类型的不同代码进行判断,如果在一个程序中频繁出现这样的if判断,会降低代码的可读性,降低代码的执行效率。
4、python中为每个异常定制了一个类型,然后提供了一种特定的语法结构来进行异常处理,如图所示。


注:这个异常处理机制是在异常产生后进行处理的,当try内的程序产生异常后会在except内寻找是否有该异常的处理方法,如果没有还是会报错,终止所有程序。如果有则只会终止try内程序,继续后面程序。
三、异常处理高级用法
1、如图所示:

2、如图所示:自定义异常

3、如图所示:断言

当满足assert这个断言的条件时会执行下面代码,否则就会报错,然后程序报错会被try捕捉到执行except的代码。
python基础20 -------python中的异常处理的更多相关文章
- 二十. Python基础(20)--面向对象的基础
二十. Python基础(20)--面向对象的基础 1 ● 类/对象/实例化 类:具有相同属性.和方法的一类人/事/物 对象(实例): 具体的某一个人/事/物 实例化: 用类创建对象的过程→类名(参数 ...
- 二十一. Python基础(21)--Python基础(21)
二十一. Python基础(21)--Python基础(21) 1 ● 类的命名空间 #对于类的静态属性: #类.属性: 调用的就是类中的属性 #对象.属性: 先从自己的内存空间里找名 ...
- 改写《python基础教程》中的一个例子
一.前言 初学python,看<python基础教程>,第20章实现了将文本转化成html的功能.由于本人之前有DIY一个markdown转html的算法,所以对这个例子有兴趣.可仔细一看 ...
- Python自动化 【第七篇】:Python基础-面向对象高级语法、异常处理、Scoket开发基础
本节内容: 1. 面向对象高级语法部分 1.1 静态方法.类方法.属性方法 1.2 类的特殊方法 1.3 反射 2. 异常处理 3. Socket开发基础 1. ...
- python基础——18(面向对象2+异常处理)
一.组合 自定义类的对象作为另一个类的属性. class Teacher: def __init__(self,name,age): self.name = name self.age = age t ...
- Python基础+Pythonweb+Python扩展+Python选修四大专题 超强麦子学院Python35G视频教程
[保持在百度网盘中的, 可以在观看,嘿嘿 内容有点多,要想下载, 回复后就可以查看下载地址,资源收集不易,请好好珍惜] 下载地址:http://www.fu83.cc/ 感觉文章好,可以小手一抖 -- ...
- python基础-初识Python和不同语言之间的区别
一.Python的创始人谁? Python之父:吉多·范罗苏姆GuidovanRossum 吉多·范罗苏姆是一名荷兰计算机程序员,他作为Python程序设计语言的作者而为人们熟知.在Python社区, ...
- Python基础-week01 Python安装/变量/输入/及循环语句使用
一.Python介绍 (1).目前Python主要应用领域: 云计算: 云计算最火的语言, 典型应用OpenStack WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,You ...
- python基础实践 -python是一门动态解释性的强类型定义语言
python是一门动态解释性的强类型定义语言 Python能做什么? Python是一门综合性的语言,你几乎能在计算机上通过Python做任何事情,以下是Python应该最广泛的几个方面: 1.网络应 ...
随机推荐
- linux驱动current,引用当前进程,及task_struct(转)
尽管内核模块不象应用程序一样顺序执行, 内核做的大部分动作是代表一个特定进程的. 内核代码可以引用当前进程, 通过存取全局项 current, 它在 <asm/current.h> 中定义 ...
- 用Python实现邮件发送Hive明细数据
代码地址如下:http://www.demodashi.com/demo/12673.html 一.需求描述 客户需要每周周一接收特定的活动数据,生成Excel或是CSV文件,并通过邮件发送给指定接收 ...
- java代理ip有效检测
java实现代理ip有效检测,依赖Apache的HttpClient 正式版: /** * 批量代理IP有效检测 * * @param pro ...
- centos安装postgresql
#安装postgresqlyum -y install postgresql-server #执行数据库初始化脚本service postgresql-9.2 initdb #启动服务service ...
- 详解zabbix安装部署(Server端篇) (转)
Linux下常用的系统监控软件有Nagios.Cacti.Zabbix.Monit等,这些开源的软件,可以帮助我们更好的管理机器,在第一时间内发现,并警告系统维护人员. 今天开始研究下Zabbix,使 ...
- 转:Exception loading sessions from persistent storage
直用tomcat一段时间都正常无事,最近一次启动tomcat就发生以下异常: 严重: IOException while loading persisted sessions: java.io.EOF ...
- DDD中的聚合和UML中的聚合以及组合的关系
UML:聚合关系:成员对象是整体的一部分,但是成员对象可以脱离整体对象独立存在.如汽车(Car)与引擎(Engine).轮胎(Wheel).车灯(Light)之间的关系为聚合关系,引擎.轮胎.车灯可以 ...
- php使用imagick模块实现图片缩放、裁剪、压缩示例
PHP 使用Imagick模块 缩放,裁剪,压缩图片 包括gif图片 缩放 裁剪 复制代码代码如下: /** * 图片裁剪 * 裁剪规则: * 1. 高度为空或为零 按宽度缩放 高度自适 ...
- JVM调优- 学习笔记(转)
http://blog.csdn.net/fenglibing/article/details/6321453 GC学习笔记 这是我公司同事的GC学习笔记,写得蛮详细的,由浅入深,循序渐进,让人一看就 ...
- Django安装和启动
1.django安装 在http://www.djangoproject.com/download/这个网站上可以下载django的最新版本.在下载时,要注意django版本和本机安装的Python版 ...