python的错误处理和调试

python的错误处理和调试

异常处理

python和其他语言一样,都有异常处理机制。
其语法和其他语言大差不差:

try:
    可能出错的代码
except 异常类型1 as 变量名1:
    处理异常1的代码
    如果需要,还可以抛出新的异常
    或者继续处理原来的异常
else:
    如果没有异常,就执行这里的代码
finally:
    无论是否发生异常都会执行的代码

异常捕捉顺序也和C++一样,从上到下挨个匹配

抛出异常

raise Exception('我是异常')

类似于C++中的throw。在try代码中抛出异常,也可以在except代码中抛出。
该异常一般在except代码中处理,或者在finally代码中处理。

异常类型

所有的异常类型继承自BaseException
https://docs.python.org/3/library/exceptions.html#exception-hierarchy

调试

  1. print
    和C++大致一样,简单调试使用print
print(a)
  1. 断言
    也可以使用断言
assert a == b, 'a不等于b'

若断言失败,则抛出断言异常AssertionError
C++的断言在 设置NDEBUG宏后不执行,但是python中的断言一直有效。
不过python断言可以在运行时加 -O去除

  1. logging
    logging模块提供了日志功能,可以记录程序运行的信息。
    好处是,可以直接输出到文件中。

  2. pdb
    这种方法应该是正常调试最喜欢的,可以单步调试,ide的调试就是调用的这个

单元测试

python自带unittest模块,提供了一些简单的单元测试功能。

相关推荐

  1. python错误处理调试

    2024-05-13 12:34:09       29 阅读
  2. Python错误异常处理

    2024-05-13 12:34:09       35 阅读
  3. 数据结构如何影响程序错误检测调试

    2024-05-13 12:34:09       51 阅读
  4. python错误异常

    2024-05-13 12:34:09       37 阅读
  5. Python-错误与异常处理

    2024-05-13 12:34:09       59 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-13 12:34:09       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-13 12:34:09       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-13 12:34:09       82 阅读
  4. Python语言-面向对象

    2024-05-13 12:34:09       91 阅读

热门阅读

  1. 【代码随想录】day52

    2024-05-13 12:34:09       34 阅读
  2. [力扣题解]45. 跳跃游戏 II

    2024-05-13 12:34:09       30 阅读
  3. Redis——Redis的数据库结构、删除策略及淘汰策略

    2024-05-13 12:34:09       34 阅读
  4. Tauri框架:使用Rust构建轻量级桌面应用

    2024-05-13 12:34:09       31 阅读
  5. C语言和BASH SHELL中条件表达式的真假与0和1的关系

    2024-05-13 12:34:09       31 阅读
  6. 运维:CentOS常见命令详解

    2024-05-13 12:34:09       30 阅读
  7. 蓝桥杯-错误票据(两种写法stringstream和扣字符)

    2024-05-13 12:34:09       37 阅读
  8. Spring常见的注解

    2024-05-13 12:34:09       33 阅读