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

上面代码首先定义了一个异常类,并在代码中使用了该异常类。

 

 

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值