python 错误和异常

python中至少有两种错误,一种是语法错误- -,一种就是异常。

语法错误就没啥好说的了,解释器会提示syntax error,并且指向出错的行。很好解决。

比较麻烦的是异常了。

在程序运行时检测出的错误称之为异常。其实异常和php中的差不多,不同的是处理而已。

1.try/except语句

扑捉又python或你引起的错误,并且恢复。

工作流程:首先执行try字句,如果没有异常发生,那么except的字句就被python无视了。如果发生了异常,那么try子句的余下部分就被无视,然后except就会匹配扑捉异常的类型进行匹配,然后如果得到匹配,就会执行except的子句。如果在except中没有找到与之匹配的分支。就会传递到上一级的try语句中,如果还是找不到匹配,就直接抛出错误。

一个try语句能包含多个except语句,分别指定不同类型的异常。至多也只会有一个分支被执行。

try/except也可以追加一个else语句,它出现在所有except语句之后,当try没有抛出异常时候,就执行这个else的子句。

2.抛出异常

raise语句强制指定的异常发生。

比如:raise NameError, ‘name’或者raise NameError(name)

第一个参数是指定抛出异常的名称,第二个参数指定了异常的参数。

3.自定义异常

用户也可以创建新的异常类型来命名自己的异常,异常通常是直接或者间接的从exception类中派生。

比如:

class MyError(Exception):

def __init__(self, value):

self.value = value

def __str__(self):

return repr(self.value)

try:

raise MyError()

except MyError, e:

pass

4.finally

它在无论try是否抛出异常,最终都会执行的它的字句。

当然鸟,还有两个语句,一个是assert,它是有条件的在程序中触发异常,还有一个是with/as,这个是在python2.6以后实现环境管理器。


你可能感兴趣的:(python,异常,错误)