用户定义的异常有什么好名字?

Jon*_*Jon 4 python exception-handling exception

这个问题涵盖了广泛的编程语言; 但是,在这种情况下,我特别使用Python.

我想创建一些用户定义的异常,但我不确定它们应该是多么精细.例如,如果我有以下类:

class Race(object):
    def __init__(self, start_time, end_time):
        if end_time < start_time:
            raise WhatToNameThisError
        self._start_time = start_time
        self._finish_time = end_time
Run Code Online (Sandbox Code Playgroud)

如果完成时间发生在开始时间之前,我想要提出异常,但我可以调用它吗?

  • RaceError(与Race类相关的所有异常都可以使用它,并且消息可以区分它们)
  • RaceFinishTimeBeforeStartTime(更具体,但意味着我确切地知道我正在捕捉什么)

我确信还有其他方法可以看到这一点,因此有更多选择来命名异常.是否有任何标准或指南概述这一点?

dcr*_*sta 6

我认为在这种情况下内置的ValueError可能是合适的.从Python文档:

异常ValueError

当内置操作或函数接收到具有正确类型但不适当值的参数时引发,并且情况不会由更准确的异常(如IndexError)描述.

  • '用户代码可以引发内置异常.这可用于...报告错误条件"​​就像"解释器从http://docs.python.org/library/exceptions.html中引发相同异常的情况一样 (3认同)