Python学习笔记10

    xiaoxiao2021-03-26  49

    错误处理

    try...except...finally...,不同类型的错误由不同的except语句块处理,如果没有错误发生,可以在except语句块后面加一个else,没有错误发生时,执行else语句,finally语句如果有,一定会被执行(可以没有finally语句)。

    try: print('try...') r = 10 / int('2') print('result:', r) except ValueError as e: print('ValueError:', e) except ZeroDivisionError as e: print('ZeroDivisionError:', e) else: print('no error!') finally: print('finally...') print('END')

    调用堆栈,如果错误没有被捕获,一直往上抛,最终由Python解释器捕获,打印错误信息后程序退出。

    记录错误,logging.exception(e),程序打印完错误信息后会继续执行。

    抛出错误,我们可以自定义错误的class,选择好继承关系。用raise语句抛出一个错误的实例。raise语句如果不带参数,会把当前错误原样抛出,让顶层调用者处理。

    调试

    print(),打印有可能出问题的变量。

    断言assert,如果断言失败,assert语句会抛出AssertionError。python -o file.py关闭断言。

    logging,允许指定记录信息的级别,有debug、info、warning、error等几个级别。通过配置,一条语句可以输出到不同地方,如console和文件。

    import logging logging.basicConfig(level = logging.INFO) # 控制输出哪个级别的信息

    调试器pdb,python -m pdb file.py,命令l可以查看代码,命令n可以单步执行代码,任何时候可以出入命令p 变量名来查看变量,命令q结束调试。

    pdb.set_trace(),在可能出错的地方放一个set_trace,可以设置一个断点,程序会在pdb.set_trace()暂停并进入调试环境,命令p查看变量,命令c继续运行。

    支持调试功能的IDE,如PyCharm,Eclipse+pydev插件。

    单元测试

    文档测试

    转载请注明原文地址: https://ju.6miu.com/read-550334.html

    最新回复(0)