我想知道在 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
或者是否有另一种首选方法?
最佳答案
我只想提出 ValueError ,除非您需要更具体的异常(exception)..
def import_to_orm(name, save=False, recurse=False):
if recurse and not save:
raise ValueError("save must be True if recurse is True")
class BadValueError(ValueError):pass
真的没有意义 - 你的自定义类在使用上与 ValueError 相同,那么为什么不使用它呢?
关于python - 我应该对 Python 中的错误/非法参数组合提出哪个异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/256222/