我相信你很清楚,python和大多数编程语言一样,都带有内置异常.我已经浏览了这个列表,并且不能推断哪个是合适的.当然我可以做出我自己的例外,但这是一个相当标准的错误,将被排除在外.
这是基于实例关系的错误.类的实例仅与其他一些实例相关.可以根据不同的连接进行计算.raise如果尝试对不相关的实例进行计算,则此错误将为d.
class Foo:
def __init__(self,related=None):
'''related is a list of Foo instances'''
if related is not None:
self.related = related
else:
self.related = []
def compute(self,instance):
if instance in self.related:
#execute code
else:
raise SomeError("You cannot make a computation with an unrelated instance")
Run Code Online (Sandbox Code Playgroud)
说实话,似乎ValueError最有意义,因为价值是不允许的,但由于某种原因,这并不能完全适合我.没有关系的事实是这个错误的重要性,而不仅仅是不允许尝试的值这一事实.
我的逻辑是否有比ValueError更好的异常?
注意:我知道这ValueError可能是正确的答案,但我很好奇是否有更精确的东西,当我浏览文档时,我可能无法看到它的连接.