【python】错误/异常处理,调试,测试
2016-12-27 17:09
691 查看
try: print('try') r=10/2 print('result is:',r) #发生错误,会执行这部分 except ValueError as e: print('ValueError:', e) except ZeroDivisionError as e: print('ZeroDivisionError:', e) finally: #无论有没有发生错误,都执行 print("finally")
Python的错误其实也是class,所有的错误类型都继承自
BaseException
捕获错误的类型,也涵盖其子类
https://docs.python.org/3/library/exceptions.html#exception-hierarchy
一般不知道具体的错误,就可以写最外层的错误类,Exception
except Exception as e: print('aaa:',e)
调用堆栈:
错误演示:
def foo(s): return 10 / int(s) def bar(s): return foo(s) * 2 def main(): bar('0') main()
Traceback (most recent call last): #出错信息追踪 File "E:/pyfile/httpauto/ceshi.py", line 10, in <module> main() File "E:/pyfile/httpauto/ceshi.py", line 8, in main bar('0') File "E:/pyfile/httpauto/ceshi.py", line 5, in bar return foo(s) * 2 File "E:/pyfile/httpauto/ceshi.py", line 2, in foo return 10 / int(s) ZeroDivisionError: division by zero
记录错误:
如果不容错的话,出错了程序会自动断掉,然后用堆栈的方式,打印出错误信息。如果容错,就可以打出错误并且不影响程序继续执行
调试
方法一:print()把变量一个个打印出来
方法二:增加断言assert
def foo(s): n=int(s) assert n!=0,'n is zero!' #断言为true,继续执行 return 10/n def main(): foo('0') main()
方法三:替换为
logging
相关文章推荐
- 14 python异常处理,调试,单元测试以及文档测试
- python学习笔记(1)-错误处理、调试和测试
- 1900页Python系列PPT分享八:异常处理结构与程序调试、测试(70页)
- [Python进阶-6]错误异常处理,断言assert,日志logging,单元测试,文档测试
- python 错误、调试和测试
- 一个数据库远程访问错误及其解决办法(启用 JIT 调试后,任何无法处理的异常)
- python 第十七周 异常处理与程序调试
- Python 第六章 错误、调试和测试
- [Python学习笔记][第八章Python异常处理结构与程序调试]
- 极限测试之Matlab与Forcal的错误(异常)处理
- Python学习----错误、调试和测试
- python学习笔记(八) - 错误、调试、测试
- python学习(二)之文件处理与错误异常
- VC 调试技术与异常(错误)处理
- 小议C#错误调试和异常处理
- POCO C++库学习和分析 -- 异常、错误处理、调试
- [Head First Python]3. 文件与异常:处理错误
- Glide 入门到精通之十一 ——异常:调试和错误处理
- 关于IE7打开任何网页弹出[未处理的异常('对象不支持此属性或方法')发生在iexplorer.exe]错误调试框的解决办法
- Python学习笔记(八):面向对象编程、错误调试和测试(快速入门篇)