La documentación de excepción incorporada de Python define LookupError como:
La clase base para las excepciones que se generan cuando una clave o índice utilizado en una asignación o secuencia no es válido: IndexError, KeyError. Esto puede generarse directamente mediante codecs.lookup().
¿Debería usarse esta clase base solo cuando se capturan secciones de prueba que acceden a diccionarios usando índices y claves cuando uno quiere capturar ambos de forma abreviada, o hay otro caso en el que la usaría?
En primer lugar, los diccionarios solo usan claves (consulte: ¿Cómo indexar en un diccionario? ).
Si eres una persona perezosa, atrapas tanto KeyError como IndexError con LookupError (para que no digas que tienes un diccionario lleno de listas). Sin embargo, preferiría atraparlos por separado con dos excepciones diferentes. P.ej:
try: # do some stuff here except KeyError: # key error handling except IndexError: # index error handling De esta manera, puede responder a estas excepciones de diferentes maneras, ya que fueron causadas por diferentes eventos. Además, puede haber otras excepciones que son una variación de LookupError (ver más abajo) y no desea detectar estas excepciones también (la misma razón por la que uno no usa simplemente except: :).
Otra forma de usar LookupError podría ser si necesita su propia excepción, ya que el error que representa esta excepción no está descrito por KeyError ni IndexError, pero es un tipo de LookupError. En este caso, su excepción personalizada podría heredar de LookupError.