python异常处理

来源:互联网 发布:成都 律师事务所 知乎 编辑:程序博客网 时间:2024/06/14 12:16

try:    print 'try...'    r = 10 / 0    print 'result:', rexcept ZeroDivisionError, e:    print 'except:', efinally:    print 'finally...'print 'END'

上面代码中的e是什么意思?

这个e是异常类的一个实例,如果我们完整地解释这个问题,我觉得还是从Python的自定义异常类说起比较好。

假如,我们现在自定义一个简单的异常类:

class MyError(Exception):    def __init__(self, value):        self.value = value    def __str__(self):        return repr(self.value)

我们抛这个异常的时候可以这么写:

try:    raise MyError(2*2)except MyError as e:    print 'My exception occurred, value:', e.value

我们在捕获这个异常之后假如需要访问TA的一些属性怎么办,这个时候就可以使用as关键字
所以,这里的e是前面MyError类的一个instance,我们可以直接访问他的value,也就是你看到的e.value

补充:

  1. 针对except MyError as e这句,我们推荐使用as而不是,
  2. 所以,明白这里的e是什么了吧?
0 0
原创粉丝点击