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

时间:2009-09-18 20:52:27

标签: python exception exception-handling

这个问题涵盖了广泛的编程语言;但是,在这种情况下,我特别使用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

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

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

我确信还有其他方法可以查看此内容,因此有更多选项来命名异常。是否有任何标准或指导方针可以概述这一点?

2 个答案:

答案 0 :(得分:6)

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

  

异常ValueError

     

提起时   内置操作或功能   接收有一个参数   正确的类型,但不恰当的价值,   而且情况没有描述   一个更精确的例外,例如   IndexError。

答案 1 :(得分:1)

我尝试尽可能使用适当的内置异常。在Java和C#等语言中,例外列表非常强大,您很少找到自己需要定义的列表。我不太熟悉Python的例外列表,但是IIRC至少有一些非常普遍的好的。