Java 不允许异常链接的JDK异常是怎么回事?

Java 不允许异常链接的JDK异常是怎么回事?,java,exception-handling,Java,Exception Handling,我经常在JDK中使用一些异常,它们不支持异常链接,并且描述范围很窄,例如 ,“由枚举的nextElement方法抛出,表示枚举中没有更多元素”(更新为“由各种访问器方法抛出,表示请求的元素不存在” “表示在分析时意外出现错误。” 这些异常是否不应该在JDK之外使用?如果是的话,你会推荐什么样的例外情况?如果异常可以在JDK之外使用(没有代码气味),我如何获得与这些异常的链接?有一个链接功能,但它不是通过构造函数参数提供的 您可以查看哪些可能符合您的目的,但我相信这些异常是专门为它们所指示的目

我经常在JDK中使用一些异常,它们不支持异常链接,并且描述范围很窄,例如

  • ,“由
    枚举的
    nextElement
    方法抛出,表示枚举中没有更多元素”(更新为“由各种访问器方法抛出,表示请求的元素不存在”
  • “表示在分析时意外出现错误。”

这些异常是否不应该在JDK之外使用?如果是的话,你会推荐什么样的例外情况?如果异常可以在JDK之外使用(没有代码气味),我如何获得与这些异常的链接?

有一个链接功能,但它不是通过构造函数参数提供的

您可以查看哪些可能符合您的目的,但我相信这些异常是专门为它们所指示的目的而编码的


对于ParseException,这是特定于所讨论的操作的,而NoTouchElementException非常特定于数组或其他种类的线性集合。

有链接功能,但不是通过构造函数参数提供的

您可以查看哪些可能符合您的目的,但我相信这些异常是专门为它们所指示的目的而编码的


对于ParseException,这是特定于所讨论的操作的,而NoSuchElementException非常特定于数组或其他类型的线性集合。

当您说异常链接时,您是指包装其他异常吗?@Duncan Oracle教程是这么说的,所以我想是这样的。不得不用谷歌搜索它,但它出现得很快。你说的异常链接是指包装其他异常吗?@Duncan Oracle教程就是这么说的,所以我想是这样的。虽然大多数“新”异常似乎从一开始就得到了支持链的构造函数,“旧”异常得到的是支持链的构造函数(例如,1.6中的IOException,1.7中的AssertionError)我希望有一天,一些Java维护人员也会在JDK中的每个可丢弃类中添加缺少的构造函数。”虽然大多数“新”异常似乎从一开始就得到了链启用的构造函数,“旧”异常也得到了链启用的构造函数(例如,1.6中的IOException,1.7中的AssertionError),虽然很慢。我希望有一天,一些Java维护人员也会在JDK中的每个可丢弃类中添加缺少的构造函数。