【问题标题】:What are good names for user defined exceptions?用户定义异常的好名字是什么?
【发布时间】:2009-09-18 20:52:26
【问题描述】:

这个问题涵盖了广泛的编程语言;但是,在这种情况下,我专门使用 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(更具体,但意味着我确切地知道我正在捕捉什么)

我确信还有其他方法可以查看此问题,因此有更多用于命名异常的选项。是否有任何标准或指南对此进行了概述?

【问题讨论】:

    标签: python exception exception-handling


    【解决方案1】:

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

    异常值错误

    当一个 内置操作或功能 接收一个具有 正确的类型但不合适的值, 并且没有描述这种情况 更精确的例外,例如 索引错误。

    【讨论】:

    【解决方案2】:

    我尽量使用适当的内置异常。在 Java 和 C# 等语言中,异常列表非常强大,以至于您很少会找到需要自己定义的异常列表。我对 Python 的异常列表不是很熟悉,但 IIRC 至少有一些非常通用的好列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-12
      • 1970-01-01
      • 2016-10-07
      • 1970-01-01
      相关资源
      最近更新 更多