Python 2.7 学习笔记 异常处理
如同别的开发语言,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
上面代码首先定义了一个异常类,并在代码中使用了该异常类。
Python 2.7 学习笔记 异常处理的更多相关文章
- python网络爬虫学习笔记
python网络爬虫学习笔记 By 钟桓 9月 4 2014 更新日期:9月 4 2014 文章文件夹 1. 介绍: 2. 从简单语句中開始: 3. 传送数据给server 4. HTTP头-描写叙述 ...
- Requests:Python HTTP Module学习笔记(一)(转)
Requests:Python HTTP Module学习笔记(一) 在学习用python写爬虫的时候用到了Requests这个Http网络库,这个库简单好用并且功能强大,完全可以代替python的标 ...
- Python Built-in Function 学习笔记
Python Built-in Function 学习笔记 1. 匿名函数 1.1 什么是匿名函数 python允许使用lambda来创建一个匿名函数,匿名是因为他不需要以标准的方式来声明,比如def ...
- Python快速入门学习笔记(二)
注:本学习笔记参考了廖雪峰老师的Python学习教程,教程地址为:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb49318210 ...
- python数据分析入门学习笔记
学习利用python进行数据分析的笔记&下星期二内部交流会要讲的内容,一并分享给大家.博主粗心大意,有什么不对的地方欢迎指正~还有许多尚待完善的地方,待我一边学习一边完善~ 前言:各种和数据分 ...
- python网络爬虫学习笔记(二)BeautifulSoup库
Beautiful Soup库也称为beautiful4库.bs4库,它可用于解析HTML/XML,并将所有文件.字符串转换为'utf-8'编码.HTML/XML文档是与“标签树一一对应的.具体地说, ...
- Python之xml学习笔记
XML处理模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,至今很多传统公司如金融行业的很多系统的接口还主要是xml. xml的格式如下,就是通过&l ...
- python网络爬虫学习笔记(一)Request库
一.Requests库的基本说明 引入Rquests库的代码如下 import requests 库中支持REQUEST, GET, HEAD, POST, PUT, PATCH, DELETE共7个 ...
- Python基础教程学习笔记:第一章 基础知识
Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入“p ...
随机推荐
- web api 开发之 filter
1.使用filter之前应该知道的(不知道也无所谓,哈哈!) 谈到filter 不得不先了解下aop(Aspect Oriented Programming)面向切面的编程.(度娘上关于aop一大堆 ...
- 转:js不同类型对象的比较规则
Type(x) Type(y) Result type(x)==type(y) x===y otherwise... false null undefined true undefined null ...
- 在IT公司,project manager 基本上和秘书,助理什么的差不多
我感觉非常有道理,所以我不做Leader,哈哈哈
- 移动服务和 Azure Active Directory 中基于角色的访问控制
编辑人员注释:本文章由 Matthew Henderson撰写 去年 11月,我们发布了 Azure Active Directory (AAD) 预览版作为移动服务身份提供程序.此举旨在为企业开 ...
- oracle 10 g 需要启动的2个服务
开始-> run -> cmd -> services.msc OracleOraDB10g_home1TNSListener OracleServiceORCL
- AS3 Post 参数和ByteArray的方法及服务器端接收
as端: (form表单形式)req.method = URLRequestMethod.POST; var reqHeader:URLRequestHeader = new URLRequestHe ...
- 关于java项目导入,所碰到的版本问题
怎么修改myeclipse 项目中用的jdk版本 工具/原料 MyEclipse java项目 方法/步骤 首先打开MyEclipse,如下图所示 打开之后,找到我们的java项目 然后右键-- ...
- WebForm发布提示:无法加载或找不到oracle.dataaccess文件
出错提示: 在32位错做系统的开发机上引用了第三方插件(oracle的dataaccess)完成的项目,将发布的程序拷贝到64位的服务器上进行发布时提示无法加载或找不到dataaccess文件. 错误 ...
- Arduino 跷跷板(2016-01-04)
前言这是参加社区活动,用赠送的 LilyPad 来做小实验,也体验了一把艺术的LilyPad!本来是申请 nano 的,不知道怎么的就出错啦,申请成 LilyPad 了,这个实验应该用 nano 比较 ...
- java 自定义BufferedReader_readLine
import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import ...