错误、调试和测试
当我们认为某些代码可能会出错时,就可以用try来运行这段代码,如果执行出错,则后续代码不会继续执行,而是直接跳转至错误处理代码,即except语句块,执行完except后,如果有finally语句块,则执行finally语句块,至此,执行完毕。
出错的时候,一定要分析错误的调用栈信息,才能定位错误的位置。
try:
print('try...')
r = 10 / int('a')
print('result:', r)
except ValueError as e:
print('ValueError:', e)
except ZeroDivisionError as e:
print('ZeroDivisionError:', e)
finally:
print('finally...')
print('END')
常见的错误类型和继承关系:
https://docs.python.org/3/library/exceptions.html#exception-hierarchy
抛出错误
如果要抛出错误,首先根据需要,可以定义一个错误的class,选择好继承关系,然后,用raise语句抛出一个错误的实例
raise语句如果不带参数,就会把当前错误原样抛出。此外,在except中raise一个Error,还可以把一种类型的错误转化成另一种类型
调试:
1.使用print打印错误信息
2.使用assert来替代print()
3.logging指定记录信息的级别,有debug,info,warning,error等几个级别
4.pdb单步运行:python -m pdb err.py
5.pdb.set_trace():这个方法也是用pdb,但是不需要单步执行,我们只需要import pdb,然后,在可能出错的地方放一个pdb.set_trace(),就可以设置一个断点
6.使用IDE
如果要比较爽地设置断点、单步执行,就需要一个支持调试功能的IDE。目前比较好的Python IDE有:
Visual Studio Code:https://code.visualstudio.com/,需要安装Python插件。
PyCharm:http://www.jetbrains.com/pycharm/
另外,Eclipse加上pydev插件也可以调试Python程序。
单元测试:用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。
setUp()方法中连接数据库,在tearDown()方法中关闭数据库
https://docs.python.org/2/library/unittest.html
Python内置的“文档测试”(doctest)模块可以直接提取注释中的代码并执行测试
doctest非常有用,不但可以用来测试,还可以直接作为示例代码。通过某些文档生成工具,就可以自动把包含doctest的注释提取出来。用户看文档的时候,同时也看到了doctest。
当我们认为某些代码可能会出错时,就可以用try来运行这段代码,如果执行出错,则后续代码不会继续执行,而是直接跳转至错误处理代码,即except语句块,执行完except后,如果有finally语句块,则执行finally语句块,至此,执行完毕。
出错的时候,一定要分析错误的调用栈信息,才能定位错误的位置。
try:
print('try...')
r = 10 / int('a')
print('result:', r)
except ValueError as e:
print('ValueError:', e)
except ZeroDivisionError as e:
print('ZeroDivisionError:', e)
finally:
print('finally...')
print('END')
常见的错误类型和继承关系:
https://docs.python.org/3/library/exceptions.html#exception-hierarchy
抛出错误
如果要抛出错误,首先根据需要,可以定义一个错误的class,选择好继承关系,然后,用raise语句抛出一个错误的实例
raise语句如果不带参数,就会把当前错误原样抛出。此外,在except中raise一个Error,还可以把一种类型的错误转化成另一种类型
调试:
1.使用print打印错误信息
2.使用assert来替代print()
3.logging指定记录信息的级别,有debug,info,warning,error等几个级别
4.pdb单步运行:python -m pdb err.py
5.pdb.set_trace():这个方法也是用pdb,但是不需要单步执行,我们只需要import pdb,然后,在可能出错的地方放一个pdb.set_trace(),就可以设置一个断点
6.使用IDE
如果要比较爽地设置断点、单步执行,就需要一个支持调试功能的IDE。目前比较好的Python IDE有:
Visual Studio Code:https://code.visualstudio.com/,需要安装Python插件。
PyCharm:http://www.jetbrains.com/pycharm/
另外,Eclipse加上pydev插件也可以调试Python程序。
单元测试:用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。
setUp()方法中连接数据库,在tearDown()方法中关闭数据库
https://docs.python.org/2/library/unittest.html
Python内置的“文档测试”(doctest)模块可以直接提取注释中的代码并执行测试
doctest非常有用,不但可以用来测试,还可以直接作为示例代码。通过某些文档生成工具,就可以自动把包含doctest的注释提取出来。用户看文档的时候,同时也看到了doctest。