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 ...
随机推荐
- 求1+2+...+n
题目:求1+2+…+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字以及条件判断语句(A?B:C). 程序很简单,就看想到想不到了.悲剧,我属于后者... 算 ...
- hdoj 1874 畅通工程续(单源最短路+dijkstra)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 思路分析:该问题给定一个无向图.起始点和终点,要求求出从起始点到终点的最短距离: 使用Dijks ...
- Scrambled Polygon(凸多边形,斜率)
Scrambled Polygon Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 7805 Accepted: 3712 ...
- python 函数之walk
import os for root, dirs, files in os.walk("./"): print root print dirs print files 功能: ...
- 把Web Form项目转换成MVC项目
http://umbraco.com/follow-us/blog-archive/2013/7/14/moving-from-webforms-to-mvc.aspx https://codinga ...
- python之filter过滤器
Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的时,filter()把传入的函数依次作用于每个元素,然后根据返回值是 ...
- windows上的tomcat配置
下载及安装 首先要安装JDK:jdk-7windows-x64.zip 再安装tomcat:apache-tomcat-7.0.23-windows-x64.zip 配置环境变量: CATALIN ...
- TortoiseSVN和Eclipse中subversion无法协同使用
环境: Eclipse版本Luna, 第一次安装subversion插件时, 使用了http://download.eclipse.org/releases/luna中的Subversive, 版本为 ...
- SAN简介
转自IBM资料库:https://community.emc.com/people/Jeffey/blog/2013/06/18/san%E5%8D%8F%E8%AE%AE SAN(Storage A ...
- 深入浅出—JAVA(2)
2.类与对象 当你在设计类时,要记得对象是靠类的模型塑造出来的. 1.对象是已知的事物2.对象会执行的动作 对象本身已知的事物被称为 实例变量:它们代表对象的状态.切该类型的每一个对象都会独立的拥有一 ...