如同别的开发语言,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
上面代码首先定义了一个异常类,并在代码中使用了该异常类。
时间: 2024-10-14 00:31:06