博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python(十一)异常
阅读量:7009 次
发布时间:2019-06-28

本文共 850 字,大约阅读时间需要 2 分钟。

hot3.png

1,异常处理

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

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

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

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

133455_1coB_1156660.png

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

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

134154_4Jqa_1156660.png

2,代码调试

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

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

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

134804_fpWL_1156660.png

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

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

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

晋级到下一个模式——常用模块探究学习

转载于:https://my.oschina.net/u/1156660/blog/372274

你可能感兴趣的文章
WebViewJavascriptBridge的基本原理
查看>>
IIS7 配置 PHP5.6
查看>>
Ubuntu 14.04 安装 boost 1_57_0
查看>>
Thread类的join()方法
查看>>
二叉树的定义与前序、中序、后序遍历
查看>>
Laravel学习--关于Relation的坑
查看>>
mysql jdbc性能优化之mybatis/callablestatement调用存储过程mysql jdbc产生不必要的元数据查询(已解决,cpu负载减少20%)...
查看>>
Q_DECLARE_PRIVATE与Q_DECLARE_PUBLIC
查看>>
springboot数据库连接池使用策略
查看>>
eclipse定制化配置调优、初始化配置指南、可以解决启动慢等问题
查看>>
react实现多行文本超出加省略号
查看>>
回调函数
查看>>
DORIS-软件网址
查看>>
单例模式
查看>>
SICP 习题 (1.10)解题总结
查看>>
Windows 下OpenSSL 安装
查看>>
SpringBoot整合Kotlin构建Web服务
查看>>
基于Mixin Network的PHP比特币开发教程 之一:创建机器人
查看>>
区块链是一个公共数据库,要放在一个块内
查看>>
vuex实现及简略解析
查看>>