洗礼灵魂,修炼python(27)--异常处理(1)—>了解异常
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)—>了解异常的更多相关文章
- python 27 异常处理
目录 异常处理 1. 错误分类 2. 异常 3. 异常处理 4. 异常处理的两种方法 5. try的结构 5.1 结构一:单分支结构 5.2 结构二:多分支结构 5.3 结构三:万能异常 5.4 结构 ...
- 洗礼灵魂,修炼python(85)-- 知识拾遗篇 —— 深度剖析让人幽怨的编码
编码 这篇博文的主题是,编码问题,老生常谈的问题了对吧?从我这一套的文章来看,前面已经提到好多次编码问题了,的确这个确实很重要,这可是难道了很多能人异士的,当你以为你学懂了,在研究爬虫时你发现你错了, ...
- 洗礼灵魂,修炼python(69)--爬虫篇—番外篇之feedparser模块
feedparser模块 1.简介 feedparser是一个Python的Feed解析库,可以处理RSS ,CDF,Atom .使用它我们可从任何 RSS 或 Atom 订阅源得到标题.链接和文章的 ...
- python基础-异常处理
一.错误和异常 程序中难免出现错误,而错误分成两种 1.1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) #语法错误示范一 if #语法错误示范二 def te ...
- what's the python之异常处理
what's the 异常 python程序中会出现异常,即bug.若出现异常程序就报错,异常之后的代码就不会继续往下执行,这是一个正常程序不允许出现的,但是在某些程序交互的时候难免会因为用户输入问题 ...
- python的异常处理及异常类定义
python的异常处理语法和大多数语言相似: try: try块的语句... except exceptiontype1 as var:#使用as语句获得本次捕获到的异常的实例var except块语 ...
- Python(异常处理)
一 错误和异常 程序中难免出现错误,而错误分成两种 1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) 2.逻辑错误(逻辑错误) 什么是异常 异常就是程序运行时发 ...
- Python之异常处理(Day27)
一.错误和异常 part1: 1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) #语法错误示范一 if #语法错误示范二 def test: pass #语法错 ...
- Python编程-异常处理
一.错误和异常 1.程序中难免出现错误,而错误分成两种 (1)语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) #语法错误示范一 if #语法错误示范二 def t ...
- python之异常处理模块
一 . python 内置的异常类 在程序运行过程中,如果出现错误,python解释器会创建一个异常对象,并抛出给系统运行时.即程序终止正常执行流程,转而执行异常处理流程. 在某种特殊条件下,代码中也 ...
随机推荐
- IDEA的maven配置
刚接触maven的时候,也知道maven目录下有个setting文件可以设置远程maven库的地址,但自己实践的时候,发现setting文件的地址都被注释掉了,但是jar包还是能成功下载下来,那这个下 ...
- Unity 多人网络连接
NetWorkServer.cs using UnityEngine; using System.Collections; public class NetWorkServer : MonoBehav ...
- Android快速实现二维码扫描--Zxing
Android中二维码扫描的最常用库是zxing和zbar,zxing项目地址为https://github.com/zxing/zxing,目前还有多个人在维护.zbar主要用C来写的,对速度有要求 ...
- Android多线程编程<二>Handler异步消息处理机制之Message
Message(消息): 一. Message的字段: 在Android中,Message作为线程之间(主要是子线程和UI主线程之间)数据交换的载体,通过Handler去传递.它 ...
- sql语句出错:Column count doesn't match value count at row 1
报错内容: java.sql.SQLException: Column count doesn't match value count at row 1 at com.mysql.jdbc.SQLEr ...
- 从零开始学 Web 之 DOM(一)DOM的概念,对标签操作
大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识 ...
- Hadoop项目开发笔录
1.概要 我打算分享一下,我开发Hadoop的一些心得,对于即将步入Hadoop行业的童鞋,希望我整理的这些博文对您有帮助,我打算分为以下几部分来描述. 2.步骤 注:点击链接可直接跳到指定位置 Ha ...
- SPI Flash(W25Q16DV) 基本操作
读取厂家\设备 ID 发送 90H 指令,再发送 00h 的地址,然后接收即可. 代码如下: void SPIFlashReadID(int *pMID, int *pDID) { SPIFlash_ ...
- [转]npm、 cnpm、yarn
本文转自:https://blog.csdn.net/sinat_34682450/article/details/79473658 终于搞懂了三者之间的关系- 要知道三者之间的关系首先要了解三个包管 ...
- spring boot升级到2.x的坑
升级到spring boot 2.x后,发现了好多坑,现记录下来. 1.pom文件依赖的变化 1.x中,依赖是这样的: <dependency> <groupId>org.sp ...