Python 异常处理全解析:从基础到高级应用
1. 异常对象匹配机制
1.1 基于字符串的异常匹配
基于字符串的异常通过对象标识(技术上是通过 is 表达式)进行匹配,而非对象值( == 表达式)。这意味着使用相同的字符串值可能无法匹配,需要使用相同的对象引用(通常是变量)。在 Python 中,短字符串会被缓存和重用,所以有时使用相同的值可能会匹配成功,但不能依赖这种情况。
1.2 基于类的异常匹配
基于类的异常通过超类关系进行匹配。在异常处理程序中指定超类,将捕获该类的实例以及类树中任何子类的实例。可以将超类视为一般的异常类别,子类视为这些类别中更具体的异常类型。
1.3 附加上下文信息到基于类的异常
可以通过在抛出的实例对象中填充实例属性来附加上下文信息到基于类的异常,通常在类的构造方法中完成。在异常处理程序中,列出一个变量来接收抛出的实例,然后通过该变量访问附加的状态信息,并调用任何继承的类方法。
1.4 指定基于类的异常的错误消息文本
可以使用 __repr__ 或 __str__ 运算符重载方法来指定基于类的异常的错误消息文本。如果继承自内置的 Exception 类,传递给类构造函数的任何内容都会自动显示。
1.5 不再使用基于字符串的异常的原因
未来的 Python 版本计划淘汰基于字符串的异常。实际上,有很好的理由支持这一点:基于字符串的异常不支持类别、状
超级会员免费看
订阅专栏 解锁全文
5万+

被折叠的 条评论
为什么被折叠?



