Python 2.7 学习笔记 异常处理

时间:2022-11-04 16:45:41

如同别的开发语言,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 学习笔记 异常处理的更多相关文章

  1. python网络爬虫学习笔记

    python网络爬虫学习笔记 By 钟桓 9月 4 2014 更新日期:9月 4 2014 文章文件夹 1. 介绍: 2. 从简单语句中開始: 3. 传送数据给server 4. HTTP头-描写叙述 ...

  2. Requests&colon;Python HTTP Module学习笔记(一)(转)

    Requests:Python HTTP Module学习笔记(一) 在学习用python写爬虫的时候用到了Requests这个Http网络库,这个库简单好用并且功能强大,完全可以代替python的标 ...

  3. Python Built-in Function 学习笔记

    Python Built-in Function 学习笔记 1. 匿名函数 1.1 什么是匿名函数 python允许使用lambda来创建一个匿名函数,匿名是因为他不需要以标准的方式来声明,比如def ...

  4. Python快速入门学习笔记(二)

    注:本学习笔记参考了廖雪峰老师的Python学习教程,教程地址为:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb49318210 ...

  5. python数据分析入门学习笔记

    学习利用python进行数据分析的笔记&下星期二内部交流会要讲的内容,一并分享给大家.博主粗心大意,有什么不对的地方欢迎指正~还有许多尚待完善的地方,待我一边学习一边完善~ 前言:各种和数据分 ...

  6. python网络爬虫学习笔记(二)BeautifulSoup库

    Beautiful Soup库也称为beautiful4库.bs4库,它可用于解析HTML/XML,并将所有文件.字符串转换为'utf-8'编码.HTML/XML文档是与“标签树一一对应的.具体地说, ...

  7. Python之xml学习笔记

    XML处理模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,至今很多传统公司如金融行业的很多系统的接口还主要是xml. xml的格式如下,就是通过&l ...

  8. python网络爬虫学习笔记(一)Request库

    一.Requests库的基本说明 引入Rquests库的代码如下 import requests 库中支持REQUEST, GET, HEAD, POST, PUT, PATCH, DELETE共7个 ...

  9. Python基础教程学习笔记:第一章 基础知识

    Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入“p ...

随机推荐

  1. MySQL ERROR 1045 &lpar;28000&rpar;&colon; Access denied for user 'root'&commat;'localhost' &lpar;using password&colon; NO&rpar;的真正原因

    在博客Linux mysql 5.6: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: N ...

  2. 教你使用UIWindow实现窗口的切换

    这两天写了一个手势解锁,该死的需求要求这个手势解锁页面各种出现,毕竟人家这个客户端酒20多个领导用用的,怕泄密就加了各种保密措施.先来看下需求:1.用户注册登录后跳转设置手势页面(必须设置).2.ap ...

  3. codeforces div&period;1 A

    A. Efim and Strange Grade time limit per test 1 second memory limit per test 256 megabytes input sta ...

  4. CAGradientLayer颜色渐变器

    使用CAGradientLayer可以实现颜色的渐变, 我们先看下头文件 @interface CAGradientLayer : CALayer @property(nullable, copy) ...

  5. jdk8 JAVA&lowbar;OPTS

    JAVA_OPTS="-server -Xms1024m -Xmx1024m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -Djava. ...

  6. 计算机网络中的TCP&sol;IP模型

    Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议.Inter ...

  7. 寒冬之下,移动开发没人要了? 浅谈 iOS 开发者该 何去何从?

    前言: 作者 | 梅梅    文章来源 CSDN 对于移动互联网而言,2018 年像是球场上的一声裁判哨.哨声响起,高潮迭起的上半场结束.本该再创辉煌的下半场,还没开赛却被告之:规则改变.场地收缩.教 ...

  8. TODO maven学习笔记

    maven是什么? 我的体会 我理解得maven就是一个构建工具,可以做一些项目得整合操作,我们把一些常见得操作,封装在maven里面,并给它命名成 clean,test,compile,这些步骤都是 ...

  9. NIO SocketChannel 【链接】

    Java NIO系列教程(一) Java NIO 概述 Java NIO系列教程(六) Selector Java NIO系列教程(二) Channel Java NIO系列教程(三) Buffer ...

  10. 算法笔记&lowbar;175&colon;历届试题 蚂蚁感冒&lpar;Java&rpar;

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒. 当两只蚂蚁碰面时,它 ...