您的位置:首页 > 编程语言 > Python开发

python(十一)异常

2015-01-27 00:00 204 查看
摘要: 异常,php中使用注册函数来注册自己的异常处理类,感觉还好些,而java中提供了一大堆的异常类,真心可以出本书了。。。没有万无一失的程序,只有时时刻刻的小心和程序员思维的严谨,加上程序提供的捕捉机制——异常!

1,异常处理

python 中提供了类似于 java中的异常处理机制,即:try ... except ... finally

其中,except 可以有多个,而 finally 总是会被执行。

由于异常其实是一个类,而且所有的异常类都来源于顶层异常类 Exception,各个异常类之间又具有层次关系。因此,使用 except 捕获异常的时候,上一个 except 会捕获其本身以及其下所有子类的异常信息。因此,如果当前异常类是上一个 except 捕获异常类的子类,那么当前 except 不会捕捉到任何异常信息,因为已经被上一层拦截!

相反,如果当前 except 能够捕获到异常,那么异常也不会传递到下一个 except !



正如程序看到的一样,finally 块是一定会被执行的,不管有没有异常产生!

同样的,你也可以定义自己的异常类,但是需要继承自 python 中的某个异常类。然后在程序中需要的时候“抛出”它们(使用 raise 关键字),对于抛出的异常,如果在当前位置没有处理方法,那么异常会“向上传递”直到有程序处理或者当抛到顶层的时候交给 python 来输出默认信息。



2,代码调试

程序出错在所难免,在出错的时候有一种行之有效的调试方法是很有必要的。

简单粗暴的方式在是需要的地方直接使用 print 来打印调试信息

比 print 稍微好一点的就是采用断言:assert



还有一个种方法是使用 logging 模块,来进行日志的收集,这个可以后期再去研究!

当然了,如果有一个称手的IDE,直接开启断点调试是最好的了 ^_^

-----------------------------------------------------厉害的Python程序员----------------------------------------

晋级到下一个模式——常用模块探究学习
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: