gpt4 book ai didi

java - 通过 NoClassDefFoundError 示例分析堆栈跟踪的提示

转载 作者:太空宇宙 更新时间:2023-11-04 14:35:54 25 4
gpt4 key购买 nike

我有以下代码。编译后,我删除 MyClassToLoad.class 文件并运行代码。

public class ClassLoadersTest {
public static void main(String[] args) {
MyClassToLoad c = new MyClassToLoad();
}
}

我得到以下堆栈跟踪:

Exception in thread "main" java.lang.NoClassDefFoundError: classloaders/MyClassToLoad at classloaders.ClassLoadersTest.main(ClassLoadersTest.java:9) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

Caused by: java.lang.ClassNotFoundException: classloaders.MyClassToLoad at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:303) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
... 6 more

据我了解,这个堆栈跟踪意味着存在一个 ClassNotFoundException,它被捕获并作为 NoClassDefFoundError 重新抛出。

问题是:

1)我如何了解重新抛出发生在哪一行?

2) 谁用“... 6 more”来切断堆栈跟踪 - Java 还是 Idea?我怎样才能看到它完整的?

3)据我了解,要强制重新抛出的异常包含完整的堆栈跟踪,我们需要将其重新抛出为

throw new SomeRethrownException("some text", exceptionWhichIsTheReason)

但是NoClassDefFoundError没有这样的构造函数。所以事实上它不应该打印完整的堆栈跟踪..或者他们可能只是将其作为字符串的错误消息?

最佳答案

  1. classloaders.ClassLoadersTest.main(ClassLoadersTest.java:9) 位于 <-- 这里

  2. 运行时系统。尝试一下

    public static void main(String[] args) {
    try {
    MyClassToLoad c = new MyClassToLoad();
    } catch (java.lang.NoClassDefFoundErro e) {
    e.getCause().printStackTrace();
    }
    }

至于3,请参阅我对2的回答。

关于java - 通过 NoClassDefFoundError 示例分析堆栈跟踪的提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25582746/

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