引发异常与引发错误

时间:2018-01-24 02:18:22

标签: python

我的作业问题措辞如下:

  

试图操纵窗口已关闭的乌龟会引发错误   真
  假

我的书的措辞是"提出异常。"那么两个措辞之间是否存在差异?我觉得这是一个棘手的问题。

3 个答案:

答案 0 :(得分:0)

来自Pep8

因为异常应该是类,所以类命名约定适用于此处。但是,您应该使用后缀"错误"在你的异常名称上(如果异常实际上是一个错误)。

因此,"错误"是异常的命名约定。但是,您会发现并非所有异常都以"错误"结尾。

答案 1 :(得分:0)

异常与错误的术语有历史,但如果我们纯粹谈论Python(来自https://docs.python.org/2/library/exceptions.html#exception-hierarchy):

BaseException
 +-- SystemExit
 +-- KeyboardInterrupt
 +-- GeneratorExit
 +-- Exception
      +-- StopIteration
      +-- StandardError
      |    +-- BufferError
      |    +-- ArithmeticError
      |    |    +-- FloatingPointError
      |    |    +-- OverflowError
      |    |    +-- ZeroDivisionError
      |    +-- AssertionError
      |    +-- AttributeError
      |    +-- EnvironmentError
      |    |    +-- IOError
      |    |    +-- OSError
      |    |         +-- WindowsError (Windows)
      |    |         +-- VMSError (VMS)
      |    +-- EOFError
      |    +-- ImportError
      |    +-- LookupError
      |    |    +-- IndexError
      |    |    +-- KeyError
      |    +-- MemoryError
      |    +-- NameError
      |    |    +-- UnboundLocalError
      |    +-- ReferenceError
      |    +-- RuntimeError
      |    |    +-- NotImplementedError
      |    +-- SyntaxError
      |    |    +-- IndentationError
      |    |         +-- TabError
      |    +-- SystemError
      |    +-- TypeError
      |    +-- ValueError
      |         +-- UnicodeError
      |              +-- UnicodeDecodeError
      |              +-- UnicodeEncodeError
      |              +-- UnicodeTranslateError
      +-- Warning
           +-- DeprecationWarning
           +-- PendingDeprecationWarning
           +-- RuntimeWarning
           +-- SyntaxWarning
           +-- UserWarning
           +-- FutureWarning
       +-- ImportWarning
       +-- UnicodeWarning
       +-- BytesWarning

您可以看到所有“错误”都继承自StandardErrorException本身就是?:

的类型

我会对这个问题采取疑问,并假设它会引发某种错误(可能是OSError?)

答案 2 :(得分:0)

迂腐。实际上被提出的对象是一个例外,无论情况是否是错误。