我已经看过python的内置异常,而且看起来唯一接近的是ValueError。
来自python文档:
异常ValueError: 当内置操作或函数接收到具有正确类型但值不适当的参数时发生,并且这种情况未由诸如IndexError之类的更精确的异常描述。
是否应该创建ValueError的子类,例如InvalidFormatException?
(我的特殊情况是罗马数字字符串格式不正确,但还有许多其他适用情况。)
编辑:似乎ValueError是正确的选择,现在的问题是直接使用ValueError还是对其进行子类化。
ValueError非常适合您的情况。只需记住这一点,并记住您可以将有用的消息指定为参数,从而将其与其他类型的ValueError区别开来。
ValueError
但是,除非定义了一个很好的理由只想捕获该特定错误,而又避免捕获任何其他ValueError,否则我不会通过定义子类来使代码更复杂。许多应用程序具有数十种“特殊”错误条件,但是,如果它们还定义了针对每个案例的子类,则代码将很快变得难以维护,并且任何尝试使用该例程的人都会因意外的新异常而不断感到惊讶。