洗礼灵魂,修炼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解释器会创建一个异常对象,并抛出给系统运行时.即程序终止正常执行流程,转而执行异常处理流程. 在某种特殊条件下,代码中也 ...
随机推荐
- Django项目中使用celery做异步任务
异步任务介绍 在写项目过程中经常会遇到一些耗时的任务, 比如:发送邮件.发送短信等等~.这些操作如果都同步执行耗时长对用户体验不友好,在这种情况下就可以把任务放在后台异步执行 celery就是用于处理 ...
- leetcode — divide-two-integers
/** * Source : https://oj.leetcode.com/problems/divide-two-integers/ * * Created by lverpeng on 2017 ...
- Kafka文件存储机制那些事
Kafka是什么 Kafka是最初由Linkedin公司开发,是一个分布式.分区的.多副本的.多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx ...
- httpd配置文件httpd.conf规则说明和一些基本指令
apache httpd系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 本文主要介绍的是httpd的配置文件,包括一些最基本的指令.配置规 ...
- IdentityServer4 中文文档 -3- (简介)已支持的规范
IdentityServer4 中文文档 -3- (简介)已支持的规范 原文:http://docs.identityserver.io/en/release/intro/specs.html 目 录 ...
- int和Integer有什么区别?
Java提供两种不同的类型:引用类型和原始类型(或内置类型): int是Java的原始数据类型,Integer是java为int提供的封装类. java为每个原始类型提供了封装类: 原始类型:bool ...
- c# 获取本机IP
/// <summary> /// 获取本机IP /// </summary> /// <returns></returns> public stati ...
- 将代码从 spark 1.x 移植到 spark 2.x
1. SparkSession sparkSession可以视为sqlContext和hiveContext以及StreamingContext的结合体,这些Context的API都可以通过spark ...
- 【nginx】详细配置说明
———————————————————————相关文章———————————————————————————— Centos之安装Nginx及注意事项 [Linux]nginx常用命令 ——————— ...
- Matlab 根号的输入
二次根号: sqrt(a)或a^0.5 三次根号: x^(1/3)或者x.^(1/3) 根据x的数据结构类型 矩阵.数组需要.^