Vel*_*ron 9 python lookup exception keyerror
Python 的内置异常文档定义LookupError为:
当映射或序列上使用的键或索引无效时引发的异常的基类:IndexError、KeyError。这可以通过 codecs.lookup() 直接引发。
这个基类应该只在捕获使用索引和键访问字典的尝试部分时使用,当一个人想要速记捕获两者时,还是有另一种情况下你会使用它?
小智 5
首先,字典仅使用键(请参阅:如何索引字典?)。
如果你是一个懒惰的人,你会用 LookupError 来捕获 KeyError 和 IndexError (以免说你有一本充满列表的字典)。尽管如此,我还是更愿意分别捕获它们,并有两个不同的例外。例如:
try:
# do some stuff here
except KeyError:
# key error handling
except IndexError:
# index error handling
Run Code Online (Sandbox Code Playgroud)
这样您就可以以不同的方式响应这些异常,因为它们是由不同的事件引起的。此外,可能还有其他异常是 LookupError 的一种变体(见下文),并且您也不希望捕获这些异常(与不简单使用的原因相同except:)。
使用 LookupError 的另一种方法可能是您需要自己的异常,因为此异常表示的错误既不是由 KeyError 也不是 IndexError 描述的,而是一种 LookupError 类型。在这种情况下,您的自定义异常可以继承自 LookupError。