我想知道在Python中指示无效参数组合的最佳实践。我遇到过一些情况,你有这样的功能:
def import_to_orm(name, save=False, recurse=False):
"""
:param name: Name of some external entity to import.
:param save: Save the ORM object before returning.
:param recurse: Attempt to import associated objects as well. Because you
need the original object to have a key to relate to, save must be
`True` for recurse to be `True`.
:raise BadValueError: If `recurse and not save`.
:return: The ORM object.
"""
pass
唯一的烦恼是每个包都有自己的,通常略有不同的BadValueError
。我知道在Java中存在着java.lang.IllegalArgumentException
——大家都很清楚,每个人都将在Python中创建自己的BadValueError
s,还是有另一种首选方法?
我认为最好的处理方法是python本身处理它的方式。Python引发TypeError。例如:
我们的初级开发人员刚刚在google搜索“python异常错误参数”时发现了这个页面,我很惊讶,自从这个问题被提出后的十年里,这个显而易见的(对我来说)答案从未被提出过。
我只会提出ValueError,除非您需要更具体的异常。。
做
class BadValueError(ValueError):pass
是没有意义的-您的自定义类在使用中与ValueError是相同的,那么为什么不使用它呢?我将从
ValueError
继承有时最好创建自己的异常,但继承自一个内置的异常,它尽可能接近您想要的。
如果您需要捕获特定的错误,那么有一个名称是有帮助的。
相关问题 更多 >
编程相关推荐