Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么ClassNotFoundException没有被捕获?_Java_Classnotfoundexception - Fatal编程技术网

Java 为什么ClassNotFoundException没有被捕获?

Java 为什么ClassNotFoundException没有被捕获?,java,classnotfoundexception,Java,Classnotfoundexception,我的java应用程序抛出ClassNotFoundException,但此异常应该在以下行中捕获java.lang.ClassLoader.loadClass(ClassLoader.java:411) 由于某些原因,我只能在这里发布堆栈的一部分,并在程序中添加了一个java代理 Caused by: java.lang.NoClassDefFoundError: org/springframework/context/ApplicationListener at java.lang.C

我的java应用程序抛出ClassNotFoundException,但此异常应该在以下行中捕获
java.lang.ClassLoader.loadClass(ClassLoader.java:411)

由于某些原因,我只能在这里发布堆栈的一部分,并在程序中添加了一个java代理

Caused by: java.lang.NoClassDefFoundError: org/springframework/context/ApplicationListener
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:74) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:369) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:363) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:362) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:411) 
    at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:94) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) 
    at java.lang.Class.getDeclaredMethods(Class.java:1975) 
    at org.springframework.core.type.StandardAnnotationMetadata.getAnnotatedMethods(StandardAnnotationMetadata.java:152) 
    at org.springframework.context.annotation.ConfigurationClassParser.retrieveBeanMethodMetadata(ConfigurationClassParser.java:380) 
    at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:314) 
    at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:245) 
    at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:606) 
    ... 28 more
Caused by: java.lang.ClassNotFoundException: org.springframework.context.ApplicationListener
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:74) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:369) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:363) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:362) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
    at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:94) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) 
    at java.lang.Class.getDeclaredMethods(Class.java:1975) 
    at org.springframework.core.type.StandardAnnotationMetadata.getAnnotatedMethods(StandardAnnotationMetadata.java:152) 
    at org.springframework.context.annotation.ConfigurationClassParser.retrieveBeanMethodMetadata(ConfigurationClassParser.java:380) 
    at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:314) 
    at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:245) 
    at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:606) 
    ... 28 more

“但是这个异常应该在这一行
java.lang.ClassLoader.loadClass(ClassLoader.java:411)
中被捕获。”。。。为什么呢?我从ClassLoader.java复制了部分代码,如下所示,这里显式捕获了ClassNotFoundException<代码>尝试{if(parent!=null){c=parent.loadClass(name,false);}else{c=findBootstrapClassOrNull(name);}}}catch(ClassNotFoundException e){//ClassNotFoundException如果在非空父类加载器}中找不到类//@tom仔细检查堆栈跟踪,它会引发异常。“at java.lang.ClassLoader.loadClass(ClassLoader.java:411)”父级
ClassLoader
会引发特定try-catch块正在捕获的
ClassNotFoundException
。捕获该异常是因为这意味着祖先未找到该类,这意味着当前
ClassLoader
应该尝试并找到该类本身,如果找不到该类,则y当前的
ClassLoader
抛出另一个不同的
ClassNotFoundException
。能否提供运行时java版本。