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. 前端下载excel文件功能的三种方法

    1 从后端接收json数据,前端处理生成excel下载 JsonExportExcel的github地址:https://github.com/cuikangjie/JsonExportExcel 这 ...

  2. textarea 赋值的方法

    textarea 赋值的方法 <textarea name="" rows="3" id="note21" ></text ...

  3. 关于requests的session方法保持cookie的问题。

    最近在做爬虫的时候遇到了一个问题,在用requests的session方法保持cookie的时候发现requests不能保持手动构建的cookie.起初以为requests只能自动保持由服务器返回的s ...

  4. 边缘化搭建 DotNet Core 2.1 自动化构建和部署环境(上)

    写在前面 写这篇文章的缘由是由于笔者的对新兴技术方向有所追求,但个人资产有限,只能容许购买一台阿里云低配1核2G服务器.服务器上搭建了 Centos7 & Docker & Jenki ...

  5. 分布式系统CAP理论以及注册中心选择

    CAP定理:指的是在一个分布式系统中,Consistency(一致性). Availability(可用性).Partition tolerance(分区容错性),三者不可同时获得. 一致性(C-数据 ...

  6. redis 集群搭建: redis-cluster

    前言 redis数据存储在内存中, 就会受到内存的限制, 大家都知道, 一台电脑, 硬盘可以有1T, 但是内存, 没有听说有1T的内存吧. 那如果数据非常多, 超过一台电脑的内存空间, 怎么办呢? 正 ...

  7. 泛型理解及应用(二):使用泛型编写通用型Dao层

    相信目前所有的IT公司网站在设计WEB项目的时候都含有持久层,同样地使用过Hibernate的程序员都应该看过或者了解过Hibernate根据数据库反向生成持久层代码的模板.对于Hibernate生成 ...

  8. How to translate virtual to physical addresses through /proc/pid/pagemap

    墙外通道:http://fivelinesofcode.blogspot.com/2014/03/how-to-translate-virtual-to-physical.html I current ...

  9. 微信小程序 - 入门指引

    稍微整了整微信小程序,还是有不少问题的,做个小总结吧 和以往一样,本次项目也放到了 Github 中,欢迎围观 star ~ 一.微信公众平台 - 小程序后台 1.申请小程序账号 官网注册 注册时所用 ...

  10. 服务器CPU居高不下--解决问题历程

    基本的概述 在一个服务器的集群上面,服务器的CPU长时间居高不下,响应的时间也一直很慢,即使扩容了服务器CPU的下降效果也不是很明显. 对于CPU过高的原因,可以总结到以下原因: 太多的循环或者死循环 ...