python学到这,其实你应该是在入门到进阶的中间阶段了,但是还没有到进阶的阶段的,这是肯定的,因为进阶得可以从实际问题中解决问题的,比如写一个自动化的爬虫程序啊,对一件事物作大数据归纳分析,开发一个多人聊天服务器等等的。目前还不够的

好,今天,说一个python中很关键的知识点——异常

异常

1.什么是异常:

异常即报错,就像前面例题解析中出现的报错,就是异常,python运行时出现的错误就是异常

2.都有哪些异常:

首先得分个类:

1):语法错误:代码的结构和语法上有错误导致不能被解释器解释或者不能被编译器编译的错误

2):逻辑异常:不完整或者不合法的输入所致,或者无法执行在逻辑上无法生成、计算或者输出的过程等等

异常类:

SyntaxError:Python代码逻辑语法出错,不能执行

EOFError:用户输入文件末尾标志EOF(Ctrl+d)

IndexError:下标索引超出序列的边界

StopIteration:迭代器没有更多的值,这个在前面绝对见过

IndentationError:缩进或者语法错误,代码没有正确的对齐

TabError:Tab和空格混合使用

TypeError:不同类型间的无效操作或者说传入的对象类型与要求不符,比如字符串和数字拼接等

ValueError:传入无效或者说不被期望的参数,即使类型正确

ZeroDivisionError:除数为零

lOError:输入输出异常,基本是无法打开文件

AssertionError:断言语句(assert),当条件不符合运算规则则报错

AttributeError:试图访问一个对象没有的属性

FloatingPointError:浮点计算错误,浮点型参与计算时出现的错误

GeneratorExit:generator.close()方法被调用的时候,生成器对象的关闭方法调用

ImportError:无法导入模块或者包,基本是路径问题或者模块名不存在

KeyError:试图访问字典中不存在的键或者不存在的键值

KeyboardInterrupt:用户输入中断键(Ctrl+c),当程序还在运行,按ctrl+c手动结束程序时

MemoryError:内存溢出(可通过删除对象释放内存),内存被占满

NameError:试图访问一个不存在或者说还未赋予对象的变量变量

UnboundLocalError:NameError的子类。试图访问一个还未设置或者说还未初始化的全局变量,基本上是由于另有一个同名的本地变量(这个前一两章才说过)

NotImplementedError:尚未实现的方法

OSError:操作系统产生的异常,打开一个不存在的文件或者拒绝访问的文件时

OverflowError:数值运算超出最大限制

ReferenceError:弱引用(weak reference)试图访问一个已经被垃圾回收机制回收了的对象

RuntimeError:一般的运行时错误

SystemError:Python编译器系统错误,IDE的问题

SystemExit:Python编译器进程被关闭

UnicodeError:Unicode相关的错误(ValueError的子类)

UnicodeEncodeError:Unicode编码时的错误(UnicodeError的子类)

UnicodeDecodeError:Unicode解码时的错误(UnicodeError的子类)

UnicodeTranslateError:Unicode转换时的错误(UnicodeError的子类)

是不是觉得好多啊?我也觉得多,下面的是我归纳出的比较常见的异常,掌握这些基本够解决大部分问题了:

AssertionError

断言语句(assert),当条件不符合运算规则则报错

AttributeError

试图访问一个对象没有的属性

lOError

输入输出异常,基本是无法打开文

ImportError

无法导入模块或者包,基本是路径问题或者模块名不存在

IndentationError

缩进或者语法错误,代码没有正确的对齐

IndexError

下标索引超出序列的边界

KeyError

试图访问字典中不存在的键或者不存在的键值

KeyboardInterrupt

用户输入中断键(Ctrl+c),当程序还在运行,按ctrl+c手动结束程序时

NameError

试图访问一个不存在或者说还未赋予对象的变量变量

SyntaxError

Python代码逻辑语法出错,不能执行

TypeError

传入无效或者说不被期望的参数,即使类型正确

UnboundLocalError

NameError的子类。试图访问一个还未设置或者说还未初始化的全局变量,基本上是由于另有一个同名的本地变量

ValueError

传入一个不被期望的值,即使类型正确

3. 内置异常类的结构层次:

BaseException
+-- SystemExit
+-- KeyboardInterrupt
+-- GeneratorExit
+-- Exception
      +-- StopIteration
      +-- ArithmeticError
      |    +-- FloatingPointError
      |    +-- OverflowError
      |    +-- ZeroDivisionError
      +-- AssertionError
      +-- AttributeError
      +-- BufferError
      +-- EOFError
      +-- ImportError
      +-- LookupError
      |    +-- IndexError
      |    +-- KeyError
      +-- MemoryError
      +-- NameError
      |    +-- UnboundLocalError
      +-- OSError
      |    +-- BlockingIOError
      |    +-- ChildProcessError
      |    +-- ConnectionError
      |    |    +-- BrokenPipeError
      |    |    +-- ConnectionAbortedError
      |    |    +-- ConnectionRefusedError
      |    |    +-- ConnectionResetError
      |    +-- FileExistsError
      |    +-- FileNotFoundError
      |    +-- InterruptedError
      |    +-- IsADirectoryError
      |    +-- NotADirectoryError
      |    +-- PermissionError
      |    +-- ProcessLookupError
      |    +-- TimeoutError
      +-- ReferenceError
      +-- RuntimeError
      |    +-- NotImplementedError
      +-- SyntaxError
      |    +-- IndentationError
      |         +-- TabError
      +-- SystemError
      +-- TypeError
      +-- ValueError
      |    +-- UnicodeError
      |         +-- UnicodeDecodeError
      |         +-- UnicodeEncodeError
      |         +-- UnicodeTranslateError
      +-- Warning
           +-- DeprecationWarning
           +-- PendingDeprecationWarning
           +-- RuntimeWarning
           +-- SyntaxWarning
           +-- UserWarning
           +-- FutureWarning
           +-- ImportWarning
           +-- UnicodeWarning
           +-- BytesWarning
           +-- ResourceWarning

下面一章讲解怎么运用异常,捕获异常

洗礼灵魂,修炼python(27)--异常处理(1)—>了解异常的更多相关文章

  1. python 27 异常处理

    目录 异常处理 1. 错误分类 2. 异常 3. 异常处理 4. 异常处理的两种方法 5. try的结构 5.1 结构一:单分支结构 5.2 结构二:多分支结构 5.3 结构三:万能异常 5.4 结构 ...

  2. 洗礼灵魂,修炼python(85)-- 知识拾遗篇 —— 深度剖析让人幽怨的编码

    编码 这篇博文的主题是,编码问题,老生常谈的问题了对吧?从我这一套的文章来看,前面已经提到好多次编码问题了,的确这个确实很重要,这可是难道了很多能人异士的,当你以为你学懂了,在研究爬虫时你发现你错了, ...

  3. 洗礼灵魂,修炼python(69)--爬虫篇—番外篇之feedparser模块

    feedparser模块 1.简介 feedparser是一个Python的Feed解析库,可以处理RSS ,CDF,Atom .使用它我们可从任何 RSS 或 Atom 订阅源得到标题.链接和文章的 ...

  4. python基础-异常处理

    一.错误和异常 程序中难免出现错误,而错误分成两种 1.1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) #语法错误示范一 if #语法错误示范二 def te ...

  5. what's the python之异常处理

    what's the 异常 python程序中会出现异常,即bug.若出现异常程序就报错,异常之后的代码就不会继续往下执行,这是一个正常程序不允许出现的,但是在某些程序交互的时候难免会因为用户输入问题 ...

  6. python的异常处理及异常类定义

    python的异常处理语法和大多数语言相似: try: try块的语句... except exceptiontype1 as var:#使用as语句获得本次捕获到的异常的实例var except块语 ...

  7. Python(异常处理)

    一 错误和异常 程序中难免出现错误,而错误分成两种 1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) 2.逻辑错误(逻辑错误) 什么是异常 异常就是程序运行时发 ...

  8. Python之异常处理(Day27)

    一.错误和异常 part1: 1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) #语法错误示范一 if #语法错误示范二 def test: pass #语法错 ...

  9. Python编程-异常处理

    一.错误和异常 1.程序中难免出现错误,而错误分成两种 (1)语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) #语法错误示范一 if #语法错误示范二 def t ...

  10. python之异常处理模块

    一 . python 内置的异常类 在程序运行过程中,如果出现错误,python解释器会创建一个异常对象,并抛出给系统运行时.即程序终止正常执行流程,转而执行异常处理流程. 在某种特殊条件下,代码中也 ...

随机推荐

  1. Python函数——列表推导式、生成器与迭代器

    列表推导式 产生背景 现在有个需求,看列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求你把列表里的每个值加1,你怎么实现? 第一种方法: a = [1,3,4,6,7,7,8,9 ...

  2. 课程三(Structuring Machine Learning Projects),第二周(ML strategy(2)) —— 1.Machine learning Flight simulator:Autonomous driving (case study)

    [中文翻译] 为了帮助您练习机器学习的策略, 在本周我们将介绍另一个场景, 并询问您将如何行动.我们认为, 这个工作在一个机器学习项目的 "模拟器" 将给一个任务, 告诉你一个机器 ...

  3. (转)linux进程 linux线程 信息查看 ps top pstree

    原文:https://blog.csdn.net/xiaoliuliu2050/article/details/81912202 https://blog.csdn.net/u011734144/ar ...

  4. Zuul过滤器

    1.Zuul过滤器生命周期Zuul大部分功能都是通过过滤器来实现的,Zuul定义了4种标准的过滤器类型,这些过滤器类型对应于请求的典型生命周期.a.pre: 这种过滤器在请求被路由之前调用.可利用这种 ...

  5. C语言第十二讲,文件操作.

    C语言第十二讲,文件操作. 一丶文件操作概述 在操作系统中,我们的文档都称为文件.操作系统也为我们提供了接口进行操作.不同语言都是使用的相同的接口,只不过封装的上层接口不一样 操作文件的步骤 打开文件 ...

  6. javascript中的iterable

    遍历Array可以采用下标循环,遍历Map和Set就无法使用下标.为了统一集合类型,ES6标准引入了新的iterable类型,Array.Map和Set都属于iterable类型. 具有iterabl ...

  7. dom操作------获取长/宽/距离等值的若干方法

    1.offsetLeft:获取元素边框以外至文档顶的距离:若其祖先元素有定位属性position则返回值为元素到该定位元素的距离,不包括祖先元素的三宽(padding,border,margin),且 ...

  8. JVM笔记——编译期的优化

    一.编译过程 解析和填充符号表的过程 插入注解处理器的注解处理过程 语义分析与字节码生成过程 二.解析和填充符号表 解析包含两个过程:词法分析和语法分析 (一)词法分析 将源代码的字符流转变成标记(T ...

  9. [转]基于boot2docker部署Docker环境

    本文转自:https://www.cnblogs.com/52fhy/p/8413029.html Docker轻量级的特性使得我们可以快速打包开发环境:一处编译,到处使用.我们可以在第一次编译好需要 ...

  10. [转]C#利用反射实现两个类的对象之间相同属性的值的复制

    本文转自:https://blog.csdn.net/u013093547/article/details/53584591 在使用c#进行程序编写时,会遇到一个问题,两个属性字段差不多相同的类要进行 ...