我知道python中的错误,如NameError,TypeError。
执行python脚本后我们可能遇到的其他不同错误是什么?
答案 0 :(得分:1)
这些错误可以而且应该由模块和项目在开发时定义 - 因此,没有限制和"关闭"像你要求的一组错误。
Python内省功能允许用户通过交互式控制台查看哪些错误被定义为直接从" Exception" - 但可能会有更多:
>>> [err.__name__ for err in Exception.__subclasses__()]
['TypeError', 'StopIteration', 'ImportError', 'OSError', 'EOFError', 'RuntimeError', 'NameError', 'AttributeError', 'SyntaxError', 'LookupError', 'ValueError', 'AssertionError', 'ArithmeticError', 'SystemError', 'ReferenceError', 'BufferError', 'MemoryError', 'Warning', 'error', 'Error']
请注意,异常本身是从BaseException派生的,其子类不限于" error"异常,但也用于流量控制中使用的异常:
>>> [err.__name__ for err in BaseException.__subclasses__()]
['Exception', 'GeneratorExit', 'SystemExit', 'KeyboardInterrupt']
底线:了解错误的总数是不可能的,与学习语言无关。您正在处理的每个函数/库都可以定义新的函数/库,您应该检查文档以了解它们可以抛出哪些异常。
(在旁注中,我上面使用的__sublass__
方法确实返回了该类的直接后代的类列表。我们选择要显示的每个类的__name__
属性
@ GP89在评论中发布的文件也将显示不是例外的直接后代的错误: https://docs.python.org/2/library/exceptions.html#exception-hierarchy