python之异常处理模块
一 . python 内置的异常类
在程序运行过程中,如果出现错误,python解释器会创建一个异常对象,并抛出给系统运行时。即程序终止正常执行流程,转而执行异常处理流程。
在某种特殊条件下,代码中也可以创建一个异常对象,并通过raise语句,抛出给系统运行时。
异常对象是异常类的对象实例。python异常类均派生于BaseException,python内置的异常类的层次结构如下:
BaseException
+-- SystemExit
+-- KeyboardInterrupt
+-- GeneratorExit
+-- Exception
+-- StopIteration
+-- StandardError
| +-- BufferError
| +-- ArithmeticError
| | +-- FloatingPointError
| | +-- OverflowError
| | +-- ZeroDivisionError
| +-- AssertionError
| +-- AttributeError
| +-- EnvironmentError
| | +-- IOError
| | +-- OSError
| | +-- WindowsError (Windows)
| | +-- VMSError (VMS)
| +-- EOFError
| +-- ImportError
| +-- LookupError
| | +-- IndexError
| | +-- KeyError
| +-- MemoryError
| +-- NameError
| | +-- UnboundLocalError
| +-- ReferenceError
| +-- RuntimeError
| | +-- NotImplementedError
| +-- SyntaxError
| | +-- IndentationError
| | +-- TabError
| +-- SystemError
| +-- TypeError
| +-- ValueError
| +-- UnicodeError
| +-- UnicodeDecodeError
| +-- UnicodeEncodeError
| +-- UnicodeTranslateError
+-- Warning
+-- DeprecationWarning
+-- PendingDeprecationWarning
+-- RuntimeWarning
+-- SyntaxWarning
+-- UserWarning
+-- FutureWarning
+-- ImportWarning
+-- UnicodeWarning
+-- BytesWarning
1.1python标准异常详解
|
异常名称 |
描述 |
|
BaseException |
所有异常的基类 |
|
SystemExit |
解释器请求退出 |
|
KeyboardInterrupt |
用户中断执行(通常是输入^C) |
|
Exception |
常规错误的基类 |
|
StopIteration |
迭代器没有更多的值 |
|
GeneratorExit |
生成器(generator)发生异常来通知退出 |
|
SystemExit |
Python 解释器请求退出 |
|
StandardError |
所有的内建标准异常的基类 |
|
ArithmeticError |
所有数值计算错误的基类 |
|
FloatingPointError |
浮点计算错误 |
|
OverflowError |
数值运算超出最大限制 |
|
ZeroDivisionError |
除(或取模)零 (所有数据类型) |
|
AssertionError |
断言语句失败 |
|
AttributeError |
对象没有这个属性 |
|
EOFError |
没有内建输入,到达EOF 标记 |
|
EnvironmentError |
操作系统错误的基类 |
|
IOError |
输入/输出操作失败 |
|
OSError |
操作系统错误 |
|
WindowsError |
系统调用失败 |
|
ImportError |
导入模块/对象失败 |
|
KeyboardInterrupt |
用户中断执行(通常是输入^C) |
|
LookupError |
无效数据查询的基类 |
|
IndexError |
序列中没有没有此索引(index) |
|
KeyError |
映射中没有这个键 |
|
MemoryError |
内存溢出错误(对于Python 解释器不是致命的) |
|
NameError |
未声明/初始化对象 (没有属性) |
|
UnboundLocalError |
访问未初始化的本地变量 |
|
ReferenceError |
弱引用(Weak reference)试图访问已经垃圾回收了的对象 |
|
RuntimeError |
一般的运行时错误 |
|
NotImplementedError |
尚未实现的方法 |
|
SyntaxError |
Python 语法错误 |
|
IndentationError |
缩进错误 |
|
TabError |
Tab 和空格混用 |
|
SystemError |
一般的解释器系统错误 |
|
TypeError |
对类型无效的操作 |
|
ValueError |
传入无效的参数 |
|
UnicodeError |
Unicode 相关的错误 |
|
UnicodeDecodeError |
Unicode 解码时的错误 |
|
UnicodeEncodeError |
Unicode 编码时错误 |
|
UnicodeTranslateError |
Unicode 转换时错误 |
|
Warning |
警告的基类 |
|
DeprecationWarning |
关于被弃用的特征的警告 |
|
FutureWarning |
关于构造将来语义会有改变的警告 |
|
OverflowWarning |
旧的关于自动提升为长整型(long)的警告 |
|
PendingDeprecationWarning |
关于特性将会被废弃的警告 |
|
RuntimeWarning |
可疑的运行时行为(runtime behavior)的警告 |
|
SyntaxWarning |
可疑的语法的警告 |
|
UserWarning |
用户代码生成的警告 |
|
NameError |
尝试访问一个没有申明的变量 |
| ZeroDivisionError | 除数为0 |
| SyntaxError | 语法错误 |
| IndexError | 索引超出序列范围 |
| KeyError | 请求一个不存在的字典关键字 |
| IOError | 输入输出错误(比如你要读的文件不存在) |
| AttributeError | 尝试访问未知的对象属性 |
| ValueError | 传给函数的参数类型不正确,比如给int()函数传入字符串形 |
1.2 自定义异常
自定义异常:继承exception
自定义异常必须使用raise抛出,而且只能通过手工方式触发
class DivisionException(Exception):
def __init__(self,x,y):
Exception.__init__(self)
self.x = x
self.y = y
try:
x=5
y=2
if x/y > 0:
print(x/y)
raise DivisionException(x,y)
except DivisionException as div:
print('DivisionException x/y = %.2f'%(div.x/div.y))
>>>>>待续
python之异常处理模块的更多相关文章
- Python中optionParser模块的使用方法[转]
本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值.分享给大家供大家参考之用.具体分析如下: 一般来说,Python中有两个内 ...
- Python第八天 模块 包 全局变量和内置变量__name__ Python path
Python第八天 模块 包 全局变量和内置变量__name__ Python path 目录 Pycharm使用技巧(转载) Python第一天 安装 shell 文件 Pyt ...
- 正则表达式与Python中re模块的使用
正则表达式与Python中re模块的使用 最近做了点爬虫,正则表达式使用的非常多,用Python做的话会用到re模块. 本文总结一下正则表达式与re模块的基础与使用. 另外,给大家介绍一个在线测试正则 ...
- Python 常用系统模块整理
Python中的常用的系统模块中部分函数等的整理 random: 随机数 sys: 系统相关 os: 系统相关的 subprocess: 执行新的进程 multiprocessing: 进程相关 th ...
- Python中logging模块的基本用法
在 PyCon 2018 上,Mario Corchero 介绍了在开发过程中如何更方便轻松地记录日志的流程. 整个演讲的内容包括: 为什么日志记录非常重要 日志记录的流程是怎样的 怎样来进行日志记录 ...
- Python进阶----异常处理
Python进阶----异常处理 一丶错误和异常 错误: 语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) #语法错误示范一 if #语法错误示范二 ...
- Python 多进程异常处理
前言 最近项目用到了Python作为网站的前端,使用的框架是基于线程池的Cherrypy,但是前端依然有一些比较‘重’的模块.由于python的多线程无法很好的利用多核的性质,所以觉得把这些比较‘重’ ...
- django-rest-framework-源码解析002-序列化/请求模块/响应模块/异常处理模块/渲染模块/十大接口
简介 当我们使用django-rest-framework框架时, 项目必定是前后端分离的, 那么前后端进行数据交互时, 常见的数据类型就是xml和json(现在主流的是json), 这里就需要我们d ...
- Python队列queue模块
Python中queue模块常用来处理队列相关问题 队列常用于生产者消费者模型,主要功能为提高效率和程序解耦 1. queue模块的基本使用和相关说明 # -*- coding:utf-8 -*- # ...
随机推荐
- Spring MVC学习总结(3)——Spring3 MVC详解
DispatcherServlet 前置控制器 使用Spring MVC,配置DispatcherServlet是第一步.DispatcherServlet是一个Servlet,所以可以配置多个Dis ...
- HDU 1569 方格取数(2)
方格取数(2) Time Limit: 5000ms Memory Limit: 32768KB This problem will be judged on HDU. Original ID: 15 ...
- floyd求最小环 模板
http://www.cnblogs.com/Yz81128/archive/2012/08/15/2640940.html 求最小环 floyd求最小环 2011-08-14 9:42 1 定义: ...
- ASP.NET--IIS的Http请求流程
下面的文章是基于IIS经典模式给出的流程图,和IIS集成模式有些区别,WIN7系统自带的是IIS7,和文章分写的有些区别,现在基本上都用IIS7了,所以不要入坑 伯乐在线的文章一 伯乐在线的文章二
- C#--线程池与线程的种类
.NET CLR线程的种类 至少3个线程:主线程.调试线程.终结器线程 1.main thread 2.worker thread 3.finalizer thread 4.debugger help ...
- 关于Excel导入导出POI工具类
import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import ...
- POJ 3335
/*半平面交求核心的增量法: 假设前N-1个半平面交,对于第N个半平面,只需用它来交前N-1个平面交出的多边形. 算法开始时,调整点的方向为顺时针方向,对于是否为顺时针,只需求出其面积,若为正,必为逆 ...
- js为字符串编码
js 提供了两组函数来进行字符串的编码与解码:escape()与unescape(). decodeURI()与encodeURI(); JavaScript escape() 函数 定义和使用方法 ...
- HDU 3104 Combination Lock(数学题)
题目链接:http://acm.hdu.edu.cn/showproblem.php? pid=3104 Problem Description A combination lock consists ...
- cocos2dx 3.1从零学习(二)——菜单、场景切换、场景传值
回想一下上一篇的内容,我们已经学会了创建一个新的场景scene,加入sprite和label到层中.掌握了定时事件schedule. 我们能够顺利的写出打飞机的主场景框架. 上一篇的内容我练习了七个新 ...