异常处理 本章描述的函数将允许您处理和提升Pythonexceptions。了解Pythonexception处理的一些基础知识非常重要。它的工作方式有点像POSIX errno变量:发生的最后一个错误有一个全局指标(每个线程)。Most C API函数在成功时不会清除它,但会将其设置为指示失败时的错误。大多数C API函数也返回一个错误指示符,通常是NULL如果它们应该返回一个指针,或-1如果它们返回一个整数(例外:PyArg_*() functionsreturn 1表示成功,0表示失败). 具体来说,错误指示符由三个对象指针组成:exception的类型,异常的值和traceback对象

traceback– 打印或检索堆栈追溯 源代码: Lib / traceback.py 该模块提供了一个标准接口,用于提取,格式化和打印Python程序的堆栈跟踪。它在打印堆栈跟踪时完全模仿了Python解释器的行为。当您想要在程序控制下打印堆栈跟踪时,这非常有用,例如在解释器周围的“包装器”中 该模块使用traceback对象 – 这是存储在sys.last_traceback变量中的对象类型,并作为sys.exc_info(). 的第三项返回。该模块定义了以下函数: traceback.print_tb(tb, limit=None, file=None) 如果l

bdb– 调试器框架 源代码: Lib / bdb.py bdb模块处理基本的调试器函数,比如设置断点或通过调试器管理执行. 定义了以下异常: exception bdb.BdbQuit Bdb类为退出调试器而提出的异常. bdb模块也定义了两个类: class bdb.Breakpoint(self, file, line, temporary=0, cond=None, funcname=None) 这个类实现临时断点,忽略计数,禁用和(重新)启用,以及条件. 断点通过一个名为bpbynumber的列表和(file, line)通过bplist对的索引编号。前者指的是类Brea

http.client– HTTP协议客户端 源代码: Lib / http / client.py 该模块定义了实现HTTP和HTTPS协议的客户端的类。它通常不直接使用 – 模块urllib.request使用它来处理使用HTTP和HTTPS的URL . 另请参阅 对于更高级别的HTTP客户端界面,建议使用Requests包. 注意 仅当Python使用SSL支持编译时才能使用HTTP支持(通过ssl模块). 模块提供以下类: class http.client.HTTPConnection(host, port=None, [timeout, ] source_a

urllib.error– urllib.request引发的异常类 源代码: Lib / urllib / error.py urllib.error模块定义了例外的异常类by urllib.request。基本异常类是URLError. 以下异常由urllib.error引发: exception urllib.error.URLError 处理程序在遇到问题时引发此异常(或派生异常)。它是OSError. reason 的子类。这个错误的原因。它可以是消息字符串或anotherexception实例. 更改版本3.3:URLError已成为OSError的子类而不是IOErr

xml.sax– 支持SAX2解析器 源代码: Lib / xml / sax / __ init__.py xml.sax包提供了许多实现的模块用于Python的简单API for XML(SAX)接口。软件包本身提供SAX异常和SAX API用户最常用的便捷功能. Warning xml.sax模块不能安全地防止恶意构建的数据。如果您需要解析不受信任或未经身份验证的数据,请参阅 XML漏洞. 在版本3.7.1中更改: SAX解析器默认不再处理常规外部实体以提高安全性。之前,解析器创建网络连接以从DTD和实体的文件系统获取远程文件或加载本地文件。可以在解析器对象和参数setFea

xml.dom– 文档对象模型API 源代码: Lib / xml / dom / __ init__.py 文档对象模型或“DOM”是来自World WideWeb Consortium(W3C)的跨语言API,用于访问和修改XML文档。DOMimplementation将XML文档呈现为树结构,或允许客户端代码从头开始构建这样的结构。然后通过一组提供着名界面的对象访问结构. DOM对于随机访问应用程序非常有用。SAX仅允许您一次查看文档的一位。如果您正在查看一个SAXelement,则无法访问另一个SAXelement。如果您正在查看文本节点,则无法访问包含元素。当您编写SAX

email.errors:异常和缺陷类 源代码: Lib / email / errors.py 在email.errors模块中定义了以下异常类: exception email.errors.MessageError 这是email包可以进行的所有异常的基类。它源于标准的Exception类,并定义了无附加方法. exception email.errors.MessageParseError 这是Parser类引发的异常的基类。它来自MessageError。该类也由headerregistry. exception email.errors.HeaderParseError 在解析RF

使用asyncio进行开发 异步编程与经典的“顺序”编程不同. 本页列出了常见的错误和陷阱,并解释了如何避免它们. 调试模式 默认情况下,asyncio在生产模式下运行。为了简化开发,asyncio有debug mode. 有几种方法可以启用asyncio调试模式: 将PYTHONASYNCIODEBUG环境变量设置为1. 使用-X dev Python命令行选项. Passing debug=True到asyncio.run(). 调用loop.set_debug(). 除了启用调试模式外,还要考虑: 将 asyncio logger 的日志级别设置为logging.DEBUG,例如,可以在

期货 Future对象用于桥接基于低级回调的代码与高级异步/等待代码. 未来函数 asyncio.isfuture(obj) 返回True如果obj是: 的一个实例asyncio.Future, 的一个实例asyncio.Task, 一个带有_asyncio_future_blocking属性。 版本3.5中的新功能 asyncio.ensure_future(obj, *, loop=None) 返回: obj论证,如果obj是Future,一个 Task,或类似Future的对象(isfuture()用于测试。) Task对象包装obj,如果obj是acoroutine(iscorouti