为什么Python异常被命名为“错误”(例如ZeroDivisionError,NameError,TypeError)而不是“异常”(例如ZeroDivisionException,NameException,TypeException)。
我来自Java背景,最近开始学习Python,因此这是令人困惑的,因为在Java中错误和异常是有区别的。
Python也有区别吗?
发布于 2010-05-25 18:58:29
SystemExit、KeyboardInterrupt、StopIteration、GeneratorExit都是异常,而不是错误。actual errors中的单词'Error‘表示difference.发布于 2010-05-26 01:20:43
我相信这个约定来自于PEP 8 - Style Guide for Python Code
异常名称
因为异常应该是类,所以类命名约定在这里适用。但是,您应该在异常名称上使用"Error“后缀(如果异常实际上是一个错误)。
发布于 2010-05-25 19:04:03
在这方面,Python与Java非常相似。但是Python的异常应该与Java的Throwable进行比较。
由于Throwable有各种各样的类型-- Error、RuntimeException和( checked ) Exception --Python也是如此(尽管没有checked Exception)。
至于语言,错误是例外的,因此继承层次结构并不奇怪。
不过,我并不是特别喜欢Exception这个名字。异常不仅用于异常情况(希望是错误),而且还用于跳出控制流。因为这就是异常所做的;它会跳出正常的控制流,跳到一个标记点。有点像goto,但更精致。
也就是说,每次遇到找不到合适的返回值的情况时,都倾向于使用异常。两者都在Python中,就像在Java中一样。
https://stackoverflow.com/questions/2903827
复制相似问题