一、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中的异常处理的更多相关文章

  1. 二十. Python基础(20)--面向对象的基础

    二十. Python基础(20)--面向对象的基础 1 ● 类/对象/实例化 类:具有相同属性.和方法的一类人/事/物 对象(实例): 具体的某一个人/事/物 实例化: 用类创建对象的过程→类名(参数 ...

  2. 二十一. Python基础(21)--Python基础(21)

    二十一. Python基础(21)--Python基础(21) 1 ● 类的命名空间 #对于类的静态属性:     #类.属性: 调用的就是类中的属性     #对象.属性: 先从自己的内存空间里找名 ...

  3. 改写《python基础教程》中的一个例子

    一.前言 初学python,看<python基础教程>,第20章实现了将文本转化成html的功能.由于本人之前有DIY一个markdown转html的算法,所以对这个例子有兴趣.可仔细一看 ...

  4. Python自动化 【第七篇】:Python基础-面向对象高级语法、异常处理、Scoket开发基础

    本节内容: 1.     面向对象高级语法部分 1.1   静态方法.类方法.属性方法 1.2   类的特殊方法 1.3   反射 2.     异常处理 3.     Socket开发基础 1.   ...

  5. python基础——18(面向对象2+异常处理)

    一.组合 自定义类的对象作为另一个类的属性. class Teacher: def __init__(self,name,age): self.name = name self.age = age t ...

  6. Python基础+Pythonweb+Python扩展+Python选修四大专题 超强麦子学院Python35G视频教程

    [保持在百度网盘中的, 可以在观看,嘿嘿 内容有点多,要想下载, 回复后就可以查看下载地址,资源收集不易,请好好珍惜] 下载地址:http://www.fu83.cc/ 感觉文章好,可以小手一抖 -- ...

  7. python基础-初识Python和不同语言之间的区别

    一.Python的创始人谁? Python之父:吉多·范罗苏姆GuidovanRossum 吉多·范罗苏姆是一名荷兰计算机程序员,他作为Python程序设计语言的作者而为人们熟知.在Python社区, ...

  8. Python基础-week01 Python安装/变量/输入/及循环语句使用

      一.Python介绍 (1).目前Python主要应用领域: 云计算: 云计算最火的语言, 典型应用OpenStack WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,You ...

  9. python基础实践 -python是一门动态解释性的强类型定义语言

    python是一门动态解释性的强类型定义语言 Python能做什么? Python是一门综合性的语言,你几乎能在计算机上通过Python做任何事情,以下是Python应该最广泛的几个方面: 1.网络应 ...

随机推荐

  1. hdu 3667 /2010哈尔滨赛区H题 费用与流量为非线性关系/费用流

    题意: 在一般费用流题目改动:路过某路,每x单位流量须要花费 ai*x^2(ai为给定的系数). 開始的的时候,一看仅仅只是是最后统计费用上在改动罢了,一看例子.发现根本没那么简单(ps:以后每次写程 ...

  2. 字符串截取 及 substr 和 substring 的区别

    1..字符串截取 str.substr(0, 1) // 获取字符串第一个字符 str.substr(-1) // 获取字符串最后一个字符 str.charAt(str.length - 1) // ...

  3. Shell脚本之:函数

    Shell 也支持函数.Shell函数必须先定义后使用. 函数的定义与调用 Shell 函数的定义格式如下: function_name () { list of commands [ return ...

  4. 应用程序之UIWebView的使用

    UIWebView简介 知识点总结 代码实现 一.UIWebView简介 1.是iOS内置的浏览器控件,可以浏览网页.打开文档等2.能够加载html/htm.pdf.docx.txt等格式的文件3.系 ...

  5. [译] 通过 contentEditable 属性创建一个所见即所得的编辑器(富文本编辑器)

    译者注 这只是一篇入门教程,介绍了一些基础知识,仅供参考,切不可因此觉得富文本编辑器很简单. 创建富文本编辑器是一个非常复杂的工程,需要考虑到方方面面,也有很多坑(请参考原文第一条评论). 为免误导大 ...

  6. Swing中GridBagLayout布局的使用

    1 http://pydoing.blogspot.com/2011/05/java-gridbaglayout.html  台湾人博客,需FQ 2 http://zhangjunhd.blog.51 ...

  7. Android 函数回调

    1 http://blog.csdn.net/xyz_lmn/article/details/8631195 我感觉fragment和activity的通信形象的解释了函数的回调,看别人的博客越看越迷 ...

  8. The return types for the following stored procedures could not be detected

    1.使用dbml映射数据库,添加存储过程到dbml文件时报错. 2.原因:存储过程中使用了临时表 3.解决方案 3.1 通过自定义表值变量实现 Ex: DECLARE @TempTable TABLE ...

  9. 转MQTT--Python进行发布、订阅测试

    前言  使用python编写程序进行测试MQTT的发布和订阅功能.首先要安装:pip install paho-mqtt 测试发布(pub)  我的MQTT部署在阿里云的服务器上面,所以我在本机上编写 ...

  10. Windows2008RC2 IIS配置php执行环境

    1:下载一个php manager,安装.打开IIS管理器后,点击计算机,就能够看到右边PHPManager 静静地躺在那儿了.双击PHPManager    后我们就能够開始对PHP进行配置了. 2 ...