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 -*- # ...
 
随机推荐
- 0208如何利用federated配置远程的数据库和本地数据相互交互
			
-- 第一步修改本地数据库的配置文件,让其支持federated存储引擎,在[mysqld]配置文件下面增加federated[注意不能写成大写]-- federated -- 第二步创建一个数据库, ...
 - 华为USG6550 MIB CPU MEM
			
https://www.cnblogs.com/vincent-liang/p/7785089.html
 - nginx 、tomcat 集群配置、shiro Session 共享
			
一.nginx.config 配置 #user nobody; worker_processes ; #error_log logs/error.log; #error_log logs/error. ...
 - spring boot使用外部tomcat部署
			
1:pom里面的packaging修改为war(<packaging>war</packaging>) 2:在pom依赖spring-boot-starter-web排除内置的 ...
 - Codeforces Round #FF (Div. 2)  D. DZY Loves Modification 贪心+优先队列
			
链接:http://codeforces.com/problemset/problem/447/D 题意:一个n*m的矩阵.能够进行k次操作,每次操作室对某一行或某一列的的数都减p,获得的得分是这一行 ...
 - mysql选择上一条、下一条数据记录,排序上移、下移、置顶
			
1.功能须要 完毕列表排序上移,下移,置顶功能.效果例如以下图所看到的: 2设置思路 设置一个rank为之间戳,通过选择上移,就是将本记录与上一条记录rank值交换,下移就是将本条记录与下一条记录ra ...
 - Linux环境中Apache也就是httpd服务的启动,查看版本等操作
			
本机是虚拟机,装的redhat Linux版本,默认是安装了httpd的 打开terminal 切换到root用户 cd到/etc/rc.d/init.d/目录,并列出该目录下的所有文件,看看是否有h ...
 - 使用Lucene对预处理后的文档进行创建索引(可执行)
			
时间: 2015/3/18 杨鑫newlife 对于文档的预处理后.就要開始使用Lucene来处理相关的内容了. 这里使用的Lucene的过程例如以下: 首先要为处理对象机那里索引 二是构建查询对象 ...
 - Grace Hopper
			
葛丽丝·穆雷·霍普(英语:Grace Murray Hopper,1906年12月9日-1992年1月1日),本姓穆雷(Murray),霍普(Hopper)为夫姓,生于美国纽约州纽约市,美国海军准将及 ...
 - luogu1120 小木棍【数据加强版】 暴力剪枝
			
题目大意 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50.现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度.给出每段小木棍的长度,编程帮 ...