gpt4 book ai didi

java - 任何人都可以抛出 `java.lang.InternalError` 或 `java.lang.UnknownError` 吗?

转载 作者:搜寻专家 更新时间:2023-11-01 02:24:25 24 4
gpt4 key购买 nike

我很好奇 java.lang.InternalError 怎么会或 java.lang.UnknownError被抛出。

我不是说简单

throw new InternalError();
throw new UnknownError();

但由 Java SE 库或 JVM 本身抛出(最近通常使用 Oracle 实现)。

例如,使 ArrayList.clone 成为可能的特定代码或情况真的抛出一个 InternalError 是我想要的答案。以下是其源代码。

public Object clone() {
try {
ArrayList<?> v = (ArrayList<?>) super.clone();
v.elementData = Arrays.copyOf(elementData, size);
v.modCount = 0;
return v;
} catch (CloneNotSupportedException e) {
// this shouldn't happen, since we are Cloneable
throw new InternalError(e);
}
}

最佳答案

如果你想锻炼你的好奇心,去Java Bugs Database页面,以InternalErrorUnknownError为关键字搜索bug。

这些报告几乎都是错误,其中有人设法导致 InternalErrorUnknownError 发生……而不仅仅是理论上的可能性。

注意:

  • 这些错误中的大多数可能是历史性的;即在早期版本的 Java 中已修复。 (但是你没有明确说明你在谈论哪个版本。最近多久?通常对谁来说?)

  • 许多旧错误似乎已从公众视野中隐藏起来。当您单击搜索结果中的链接时,它会将您带回到搜索来源。 (如果您不喜欢它,请向 Oracle 投诉...而不是我。)


除了报告的错误之外,如果您准备干扰 Java 安装(例如调整“rt.jar”文件)或乱用 native 代码,则可能有很多方法会导致这些错误发生.

关于java - 任何人都可以抛出 `java.lang.InternalError` 或 `java.lang.UnknownError` 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28657635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com