Antes de imprimir la jerarquía de errores, comprendamos qué es realmente una excepción. Las excepciones ocurren incluso si nuestro código es sintácticamente correcto, sin embargo, durante la ejecución arrojan un error. No son incondicionalmente fatales, los errores que obtenemos durante la ejecución se denominan Excepciones. Hay muchas excepciones integradas en Python, intentemos imprimirlas en una jerarquía.
Para imprimir la jerarquía del árbol, usaremos el módulo de inspección en Python. El módulo de inspección proporciona funciones útiles para obtener información sobre objetos como módulos, clases, métodos, funciones y objetos de código. Por ejemplo, puede ayudarlo a examinar el contenido de una clase, extraer y formatear la lista de argumentos para una función.
Para construir una jerarquía de árbol usaremos inspeccionar.getclasstree().
Sintaxis: inspeccionar.getclasstree(clases, único=Falso)
inspect.getclasstree() organiza la lista de clases dada en una jerarquía de listas anidadas. Cuando aparece una lista anidada, contiene clases derivadas de la clase cuya entrada precede inmediatamente a la lista.
Si el argumento único es verdadero, aparece exactamente una entrada en la estructura devuelta para cada clase en la lista dada. De lo contrario, las clases que usan herencia múltiple y sus descendientes aparecerán varias veces.
Escribamos un código para imprimir la jerarquía del árbol para las excepciones integradas:
Python3
# import inspect module import inspect # our treeClass function def treeClass(cls, ind = 0): # print name of the class print ('-' * ind, cls.__name__) # iterating through subclasses for i in cls.__subclasses__(): treeClass(i, ind + 3) print("Hierarchy for Built-in exceptions is : ") # inspect.getmro() Return a tuple # of class cls’s base classes. # building a tree hierarchy inspect.getclasstree(inspect.getmro(BaseException)) # function call treeClass(BaseException)
Producción:
Hierarchy for Built-in exceptions is : BaseException --- Exception ------ TypeError ------ StopAsyncIteration ------ StopIteration ------ ImportError --------- ModuleNotFoundError --------- ZipImportError ------ OSError --------- ConnectionError ------------ BrokenPipeError ------------ ConnectionAbortedError ------------ ConnectionRefusedError ------------ ConnectionResetError --------- BlockingIOError --------- ChildProcessError --------- FileExistsError --------- FileNotFoundError --------- IsADirectoryError --------- NotADirectoryError --------- InterruptedError --------- PermissionError --------- ProcessLookupError --------- TimeoutError --------- UnsupportedOperation ------ EOFError ------ RuntimeError --------- RecursionError --------- NotImplementedError --------- _DeadlockError ------ NameError --------- UnboundLocalError ------ AttributeError ------ SyntaxError --------- IndentationError ------------ TabError ------ LookupError --------- IndexError --------- KeyError --------- CodecRegistryError ------ ValueError --------- UnicodeError ------------ UnicodeEncodeError ------------ UnicodeDecodeError ------------ UnicodeTranslateError --------- UnsupportedOperation ------ AssertionError ------ ArithmeticError --------- FloatingPointError --------- OverflowError --------- ZeroDivisionError ------ SystemError --------- CodecRegistryError ------ ReferenceError ------ MemoryError ------ BufferError ------ Warning --------- UserWarning --------- DeprecationWarning --------- PendingDeprecationWarning --------- SyntaxWarning --------- RuntimeWarning --------- FutureWarning --------- ImportWarning --------- UnicodeWarning --------- BytesWarning --------- ResourceWarning ------ _OptionError ------ error ------ Verbose ------ Error ------ TokenError ------ StopTokenizing ------ EndOfBlock --- GeneratorExit --- SystemExit --- KeyboardInterrupt
Publicación traducida automáticamente
Artículo escrito por atharvapaliwal7 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA