Python 2.7 学习笔记 异常处理
2024-10-18 18:15:33
如同别的开发语言,python也支持异常处理机制。本文介绍下它的基本语法。
一、异常的基本处理框架如下:
try:
业务代码
except 异常类1:
异常处理代码
except 异常类2:
异常处理代码
except:
异常处理代码
finally:
清理代码
其中最后一个 except: 没有带异常类名,表示缺省处理,所有的前面没有处理的异常都会被它拦截。
相当于 except Exception: ,因为所有的异常类的基类都是Exception。
举个例子:
>>> try:
... 3/0
... except ZeroDivisionError:
... print "zero"
... except:
... print "error"
... finally:
... print "end"
...
zero
end
如果需要获取异常的详细信息,可以如下方式
except ZeroDivisionError,e:
这时e就是抛出的异常对象,里面包含了异常的详细信息。
二、抛出异常
除了代码出现问题,python系统抛出内部异常外。开发这也可以自己抛出异常。如:
#定义一个方法,方法中根据参数,可能抛出异常
>>> def fun(para):
... if not para:
... raise ZeroDivisionError("test exception") #调用方法
>>> fun(False)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in fun
ZeroDivisionError: test exception
>>> fun(True)
>>> try:
... fun(False)
... except Exception,e:
... print e
...
test exception
可以看出,在python中抛出异常,是通过语句 raise 异常类 或 raise 异常类(异常信息)
三、自定义异常
python中,所有异常类的基类使Exception类,可以继承Exception类 或它的子类来创建新的异常,如:
#创建异常类
>>> class MyException(Exception):
... pass
...
#define function
>>> def test(para):
... if not para:
... raise MyException("test")
...
#call function
>>> try:
... test(False)
... except MyException,e:
... print e
...
test
上面代码首先定义了一个异常类,并在代码中使用了该异常类。
最新文章
- Ubuntu的多文件编译以及c语言的数组、函数
- python 学习笔记十一 SQLALchemy ORM(进阶篇)
- [Angular 2] Dispatching Action with Payloads and type to Reducers
- Serializable序列化的作用
- valgrind--内存泄漏检测(转)
- WebService . Schema约束
- form的重置reset
- 大表分批删除脚本之MySQL版
- (C/C++学习笔记) 八. 程序控制语句
- vue 3D小球 loading
- Elasticsearch Query DSL 整理总结(一)—— Query DSL 概要,MatchAllQuery,全文查询简述
- python xlwt写excel格式控制 颜色、模式、编码、背景色
- 论文笔记——Data-free Parameter Pruning for Deep Neural Networks
- 南京网络赛I-Skr【回文树模板】
- HDU 1142 A Walk Through the Forest(Dijkstra+记忆化搜索)
- Quartz教程一:使用quartz
- 基于socket的udp传输,socketserver模块,进程
- poj2983--Is the Information Reliable?(差分约束)
- sql_自连接,181,182,196,197
- JsQuick--个人封装的Js库
热门文章
- Ajax 生成流文件下载 以及复选框的实现
- android LinearLayout和RelativeLayout实现精确布局
- projecteuler----&;gt;problem=8----Largest product in a series
- Scala函数---既存类型
- hdu4725 The Shortest Path in Nya Graph【最短路+建图】
- 新技能get: 使用whois查询不明网址的信息
- 字符串分割函数Demo
- JavaSE学习总结第12天_API常用对象2
- WCF跟踪分析 使用(SvcTraceViewer)
- linux 进程通信