python-8错误调试测试
2018-06-18 02:54:58来源:未知 阅读 ()
1-错误处理
import logging try: print('try.......') r = 10/0 except ValueError as e: print('result:', e) except ZeroDivisionError as e: print('ZeroDivisionError:',e) logging.exception(e) #记录错误信息 else: print("no error!") finally: print("finally....") print('End')
Python所有的错误都是从BaseException类派生的,常见的错误类型和继承关系看这里:
https://docs.python.org/3/library/exceptions.html#exception-hierarchy
2-调试
2.1 抛出错误
class FooError(ValueError): pass def foo(s): n = int(s) if n==0: raise FooError('invalid value: %s' % s) #抛出异常 return 10 / n foo('0')
2.2 打印错误信息
#print()最大的坏处将来还得删除它 def foo1(s): n = int(s) assert n != 0, 'n is zero!' #assert断言 return 10 / n foo1('0') #调用: $ python -O err.py 用-O参数来关闭assert
import logging logging.basicConfig(level=logging.INFO) logging.info('hello word!!!!!') #记录信息 #级别,有debug,info,warning,error等几个级别
IDE
如果要比较爽地设置断点、单步执行,就需要一个支持调试功能的IDE。目前比较好的Python IDE有:
Visual Studio Code:https://code.visualstudio.com/,需要安装Python插件。
PyCharm:http://www.jetbrains.com/pycharm/
另外,Eclipse加上pydev插件也可以调试Python程序。
3-单元测试
import unittest class TestDict(unittest.TestCase): def test_init(self): d = Dict(a=1, b='test') self.assertEqual(d.a, 1) self.assertEqual(d.b, 'test') self.assertTrue(isinstance(d, dict)) def test_keyerror(self): d = Dict() with self.assertRaises(KeyError): #期待抛出指定类型的Error(KeyError) value = d['empty']
运行单元测试
$ python -m unittest mydict_test
或者
if __name__ == '__main__': unittest.main()
$ python mydict_test.py
4-文档注释
class Dict(dict): ''' Simple dict but also support access as x.y style. >>> d1 = Dict() >>> d1['x'] = 100 >>> d1.x 100 >>> d1.y = 200 >>> d1['y'] 200 >>> d2 = Dict(a=1, b=2, c='3') >>> d2.c '3' >>> d2['empty'] Traceback (most recent call last): ... KeyError: 'empty' >>> d2.empty Traceback (most recent call last): ... AttributeError: 'Dict' object has no attribute 'empty' '''
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:Rarfile解压不了的问题
- faster-rcnn错误信息 : tensorflow.python.framework.error 2019-07-24
- [Python学习]错误篇二:切换当前工作目录时出错——FileNotF 2019-07-24
- Python连载22-调试&单元测试 2019-07-24
- mysql-python 安装错误: Cannot open include file:  2019-07-24
- 读文件时出现这个错误 'utf-8' codec can&a 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash