当前位置: 首页 > 面试题库 >

我应该针对Python中的错误/非法参数组合引发哪个异常?

丁振海
2023-03-14
问题内容

我想知道在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-是否众所周知每个人都将BadValueError在Python中创建自己的s还是存在另一种首选方法?


问题答案:

我只会提出ValueError,除非您需要更具体的例外。

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编写一个简单的API客户端,我想知道如果远程服务器不满意,我应该引发什么异常。 API本身的文档记录非常糟糕(我不知道所有可能的错误消息,所以我不能为所有这些消息定义自定义类),我让请求处理HTTP级别的错误,在这些情况下会引发,但是如果服务器在JSON响应中只提供键,我应该引发什么呢? 我目前使用的是,但感觉非常广泛,我想知道是否有更好的替代方案。 问候。

  • 我想知道我应该更改JTextArea的哪个参数来删除这个: 我希望我的JTextArea是空的,我不想用括号(?)来导航它

  • 基本上,我试图加载一些图像数据到java作为ImageIcon对象。我最初尝试简单地做ImageIcon图像=新ImageIcon(文件名),但这使得图像在导出为JAR文件时不会加载。我做这件事的新方法是: 这个错误是因为吃豆人。班getResource(文件名)返回null。我的目录是这样的:我的PacMan类位于src/Model/PacMan中,我的映像具有以下文件路径: 此外,我还尝试恢复

  • 问题内容: 我正在继续我的上学项目,似乎遇到了另一个错误。所以发生的事情基本上是我收到一个空指针异常,即使代码看起来很好。我相信我的阵列出了点问题,即使经过数小时的搜索,我似乎也找不到该错误。再一次,任何帮助/解决方案将不胜感激。 } 我有一个带有构造函数的学生班,并且有一个说明 但仍然出现错误。我知道要处理的代码很多,因此再次感谢任何帮助。 问题答案: 由于您的代码是当前编写的, 由于您永远不会

  • 问题内容: 在这个问题中,如何在C 11中有效地选择标准库容器?是选择C 集合时要使用的便捷流程图。 我认为对于那些不确定应该使用哪个集合的人来说,这是一个有用的资源,因此我试图找到类似的Java流程图,但未能做到。 哪些资源和“备忘单”可用来帮助人们选择使用Java进行编程时使用的正确Collection?人们如何知道应该使用哪些List,Set和Map实现? 问题答案: 由于找不到相似的流程图

  • 在这个问题中,如何在C 11中有效地选择标准库容器?是选择C集合时使用的方便流程图。 我认为对于那些不确定应该使用哪个集合的人来说,这是一个有用的资源,所以我试图找到一个类似的Java流程图,但没能做到。 有哪些资源和“备忘单”可以帮助人们在用Java编程时选择正确的集合?人们如何知道他们应该使用什么列表、集合和映射实现?