python-8错误调试测试

2018-06-18 02:54:58来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

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
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:pythonweb服务器编程(一)

下一篇:Rarfile解压不了的问题