如何编写打印 Python 异常/错误层次结构的代码?

2024 年 8 月 29 日 | 阅读 2 分钟

在本教程中,我们将了解如何编写代码来打印 Python 错误层次结构。但在此之前,我们首先应该了解什么是异常?异常是在代码即使语法正确也可能发生的错误。它们并非绝对致命,用户在执行代码时遇到的错误称为异常。Python 中有许多内置异常,在这里,我们将尝试以层次结构打印它们。

要打印树形层次结构,我们可以使用 Python 的 inspect 模块。inspect 模块用于获取有关对象(如模块、类、方法、函数和程序对象)的信息。例如,用户可以使用它来检查类的内容,提取和格式化函数的参数列表。

要构建树形层次结构,我们可以使用 inspect.getclasstree() 函数。

语法

inspect.getclasstree(): 用于将给定的类列表排列成嵌套列表的层次结构。其中嵌套列表出现的地方,它将包含派生自紧随其条目之前的类的类。

示例

输出

The Hierarchy for inbuilt exceptions is: 
 BaseException
---> Exception
------> TypeError
---------> MultipartConversionError
---------> FloatOperation
------> StopAsyncIteration
------> StopIteration
------> ImportError
---------> ModuleNotFoundError
---------> ZipImportError
------> OSError
---------> ConnectionError
------------> BrokenPipeError
------------> ConnectionAbortedError
------------> ConnectionRefusedError
------------> ConnectionResetError
--------------> RemoteDisconnected
---------> BlockingIOError
---------> ChildProcessError
---------> FileExistsError
---------> FileNotFoundError
---------> IsADirectoryError
---------> NotADirectoryError
---------> InterruptedError
------------> InterruptedSystemCall
---------> PermissionError
---------> ProcessLookupError
---------> TimeoutError
---------> UnsupportedOperation
---------> Error
------------> SameFileError
---------> SpecialFileError
---------> ExecError
---------> ReadError
---------> herror
---------> gaierror
---------> timeout
---------> SSLError
------------> SSLCertVerificationError
------------> SSLZeroReturnError
------------> SSLWantReadError
------------> SSLWantWriteError
------------> SSLSyscallError
------------> SSLEOFError
---------> URLError
------------> HTTPError
------------> ContentTooShortError
------> EOFError
---------> IncompleteReadError
------> RuntimeError
---------> RecursionError
---------> NotImplementedError
------------> StdinNotImplementedError
------------> ZMQVersionError
---------> _DeadlockError
---------> BrokenBarrierError
---------> BrokenExecutor
---------> SendfileNotAvailableError
------> NameError
---------> UnboundLocalError
------> AttributeError
---------> FrozenInstanceError
------> SyntaxError
---------> IndentationError
------------> TabError
------> LookupError
---------> IndexError
---------> KeyError
------------> UnknownBackend
------------> NoSuchKernel
.
.
.
.
---> GeneratorExit
---> SystemExit
---> KeyboardInterrupt
---> CancelledError

结论

在本教程中,我们讨论了如何使用 Python 的 inspect 模块以层次结构打印异常错误。