当前位置: 首页 > 面试题库 >

打印Python异常/错误层次结构

郤仰岳
2023-03-14
问题内容

python中的any命令行选项可以打印异常/错误类层次结构吗?

输出应类似于http://docs.python.org/2/library/exceptions.html#exception-
hierarchy


问题答案:

检查模块可能会有所帮助,特别是getclasstree()函数:

将给定的类列表排列为嵌套列表的层次结构。在出现嵌套列表的地方,它包含派生自该类的类,这些类的条目紧接在列表之前。

inspect.getclasstree(inspect.getmro(Exception))

或者,您可以递归遍历__subclasses__()继承树,如下所示:

def classtree(cls, indent=0):
    print '.' * indent, cls.__name__
    for subcls in cls.__subclasses__():
        classtree(subcls, indent + 3)

classtree(BaseException)

印刷品:

 BaseException
... Exception
...... StandardError
......... TypeError
......... ImportError
............ ZipImportError
......... EnvironmentError
............ IOError
............... ItimerError
............ OSError
......... EOFError
......... RuntimeError
............ NotImplementedError
......... NameError
............ UnboundLocalError
......... AttributeError
......... SyntaxError
............ IndentationError
............... TabError
......... LookupError
............ IndexError
............ KeyError
............ CodecRegistryError
......... ValueError
............ UnicodeError
............... UnicodeEncodeError
............... UnicodeDecodeError
............... UnicodeTranslateError
......... AssertionError
......... ArithmeticError
............ FloatingPointError
............ OverflowError
............ ZeroDivisionError
......... SystemError
............ CodecRegistryError
......... ReferenceError
......... MemoryError
......... BufferError
...... StopIteration
...... Warning
......... UserWarning
......... DeprecationWarning
......... PendingDeprecationWarning
......... SyntaxWarning
......... RuntimeWarning
......... FutureWarning
......... ImportWarning
......... UnicodeWarning
......... BytesWarning
...... _OptionError
... GeneratorExit
... SystemExit
... KeyboardInterrupt


 类似资料:
  • 问题内容: 您认为可以在异常内使用错误代码来指定错误类型吗?请看下面的代码: 我知道在此示例中使用枚举而不是字符串会更好,但是我实际上担心错误代码的概念。您认为在这里异常层次结构会更好吗?我找不到任何权威来源指出异常中的错误代码是反模式的。谢谢。 问题答案: 如果您想根据导致异常(无效名称或无效ID)的原因做出不同的响应(在代码中),那么我建议您使用不同的异常。 如果不是,那么您甚至不需要该方法,

  • 我必须写一个程序来计算邮寄的东西的运费。 以下是一些规范以及练习运行应该是什么样子: 计算: 用法:发货方法成本隔夜$5*重量两天$2*重量经济$1*重量(是的,这只是=重量)数据验证在此程序中,您还需要在主方法中执行一些验证。明确地: 项目说明不能为空。物品重量必须为 运行#1:未输入项目说明: 输入项目描述: 运行#2:输入的项目重量无效: 输入项目说明:一个大框 运行#3:输入的装运方式无效

  • 我已经开发了一个android应用程序来从蓝牙打印机打印账单,我的代码抛出的异常是“java.lang.NullPointerException:试图在空对象引用上调用虚拟方法'void java.io.OutputStream.write(byte[])”。 连接蓝牙打印机并发送数据进行打印的代码如下: //这将找到一个蓝牙打印机设备 //打印数据的代码

  • Go 语言中提供了两种创建异常信息的方式 方式一:通过 fmt 包中的 Errorf 函数创建错误信息,然后打印 package main import "fmt" func main() { // 1.创建错误信息 var err error = fmt.Errorf("这里是错误信息") // 2.打印错误信息 fmt.Println(err) // 这里是错误信息 }

  • 我使用以下代码询问用户的身高(英尺和英寸),如果用户的输入不是int,则返回一条错误消息: 程序返回feet的错误消息: 但第一次返回英寸的错误消息时,它会返回两次: 此错误仅在用户第一次输入整数以外的内容时发生。我怎么才能摆脱这个?

  • 问题描述 (Problem Description) 如何打印目录的层次结构? 解决方案 (Solution) 下面的示例演示如何使用File类的file.getName()和file.listFiles()方法打印指定目录的层次结构。 import java.io.File; import java.io.IOException; public class FileUtil { publi