LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 347|回复: 0

python的异常处理

[复制链接]
发表于 2024-1-22 18:24:10 | 显示全部楼层 |阅读模式
异常处理
本章描述的函数将让你处理和触发 Python 异常。 了解一些 Python 异常处理的基础知识是很重要的。 它的工作原理有点像 POSIX errno 变量: (每个线程) 有一个最近发生的错误的全局指示器。 大多数 C API 函数在成功执行时将不理会它。 大多数 C API 函数也会返回一个错误指示器,如果它们应当返回一个指针则会返回 NULL,或者如果它们应当返回一个整数则会返回 -1 (例外情况: PyArg_* 函数返回 1 表示成功而 0 表示失败)。
具体地说,错误指示器由三个对象指针组成:异常的类型,异常的值,和回溯对象。如果没有错误被设置,这些指针都可以是 NULL (尽管一些组合使禁止的,例如,如果异常类型是 NULL,你不能有一个非 NULL 的回溯)。
当一个函数由于它调用的某个函数失败而必须失败时,通常不会设置错误指示器;它调用的那个函数已经设置了它。而它负责处理错误和清理异常,或在清除其拥有的所有资源后返回(如对象应用或内存分配)。如果不准备处理异常,则 应该正常地继续。如果是由于一个错误返回,那么一定要向调用者表明已经设置了错误。如果错误没有得到处理或小心传播,对 Python/C API的其它调用可能不会有预期的行为,并且可能会以某种神秘的方式失败。
备注
错误指示器 不是 sys.exc_info() 的执行结果。前者对应尚未捕获的异常(异常还在传播),而后者在捕获异常后返回这个异常(异常已经停止传播)。


您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表