Python20 错误、调试

错误、调试

  • 错误处理:在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因
    • try...except...finally...的错误处理机制
      • 代码:
        ```
        # 异常处理
        # try ... except ... finally...

        '''
        当我们认为某些代码可能会出错时,就可以用try来运行这段代码,
        如果执行出错,则后续代码不会继续执行,而是直接跳转至错误处理代码,即except语句块,
        执行完except后,如果有finally语句块,则执行finally语句块,至此,执行完毕。
        '''

        try: # 语句进来 先执行 try语句块下的 print(10/0)
        print(10/0)
        except ZeroDivisionError: # try语句块报错,执行except语句块,如果try语句块不报错则不执行except语句块
        print('except 语句执行了!')
        finally: # 不管except是否执行最后都会执行finally语句块,也可以没有finally语句
        print('finally 语句执行了!')
        print('测试完成!')
        ```
      • 运行结果:
        nnRVL8.png
    • 记录错误:Python内置的logging模块可以非常容易地记录错误信息
      • 代码:
        ```
        # 内置函数logging 记录错误信息

        # 同样是出错,但程序打印完错误信息后会继续执行,并正常退出:
        import logging
        def do_ZeroError(vaule):
        return 10 / vaule

        def man():
        try:
        do_ZeroError(0)
        except Exception:
        logging.exception(Exception)
        man()
        print('End')
        ```
      • 运行结果:
        nnhGOP.png
    • 抛出错误:raise
      • 代码:
        ```
        # 抛出错误 raise

        # 自定义一个错误,需要继承错误类
        class TestError(ValueError):
        pass
        def do_Return(i):
        if i == 0:
        raise TestError('出错了!')
        return 10 / i

        print(do_Return(0))
        ```
  • 调试:检查程序是否正确运行的手段
    • 断言:assert 的意思是,表达式n != 0应该是True,否则,根据程序运行的逻辑,后面的代码肯定会出错。
    • 实例:
      nnbodI.png
    • logging:
    • 实例:
      nnqnT1.png

猜你喜欢

转载自www.cnblogs.com/thloveyl/p/11469291.html