【问题标题】:Why should I create my own Exceptions? [duplicate]为什么要创建自己的异常? [复制]
【发布时间】:2015-11-29 07:33:05
【问题描述】:

在 Java 中,我们可以编写自己的异常。

我为什么想要/需要这样做?这样做有什么好处或好处?

为什么我应该创建我的异常,而不是添加到标准异常的捕获中?

【问题讨论】:

  • 想象一个场景,您的系统在特定条件下工作,例如员工年龄必须超过 25 岁,如果用户输入他的出生日期,这会导致他未成年,那么进行异常检查会很好,这是一个非常模糊的例子,但它只是一个简单的场景有复杂的场景,但不幸的是现在想不出任何一个

标签: java exception exception-handling


【解决方案1】:

如果您对以下任何问题的回答为“是”,则应编写自己的异常类;否则,您可能可以使用其他人的。

  • 您是否需要 Java 平台中没有的异常类型?
  • 如果用户能够将您的异常与其他供应商编写的类抛出的异常区分开来,这对用户有帮助吗?
  • 您的代码是否引发了多个相关异常?
  • 如果您使用其他人的例外,用户是否可以访问这些例外?
  • 一个类似的问题是,你的包应该是独立的和自包含的吗?

取自this article中的“2. 创建自定义异常”。

【讨论】:

    【解决方案2】:

    如果您需要为不可恢复的情况抛出异常(换句话说,您不打算捕获和处理它),那么不要创建自己的异常类型。

    但是,有一些合法的(尽管非常罕见)情况,其中异常实际上用于表示可恢复的异常情况。在这些情况下,最好的选择是创建您自己的异常类型来代表您特定领域的情况。

    顺便说一句,当我说“处理”时,我的意思不仅仅是记录或返回一般的失败响应。处理代码应该与异常“共存”并应用一些业务逻辑来继续。

    【讨论】:

      【解决方案3】:

      您不一定需要,但如果您正在创建例如一个库,您可能希望创建自己的异常层次结构来配合它。

      命名良好的自定义异常会提供额外信息,但您通常会发现现有的异常会满足您的要求(您无需创建自己的 IllegalArgumentException 或类似的异常类型)。

      【讨论】:

        猜你喜欢
        • 2011-04-29
        • 1970-01-01
        • 1970-01-01
        • 2013-12-21
        • 1970-01-01
        • 1970-01-01
        • 2011-11-06
        • 2019-11-12
        • 1970-01-01
        相关资源
        最近更新 更多