原本以为类不存在的Error不能捕获,想不到是可以的,记录一下。注意,这和反射遇到的“java.lang.ClassNotFoundException”是不一样的。
以下代码,编译完后,我删除了Demo$T2.class,如果不添加try-catch,会出现:
Exception in thread "main" java.lang.NoClassDefFoundError: com/atell/Demo$T1
at com.atell.Demo.main(Demo.java:10)
Caused by: java.lang.ClassNotFoundException: com.atell.Demo$T1
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 1 more
添加了tay-catch之后,就打印“捕获了Error”
package com.atell;
import java.io.IOException;
public class Demo {
public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException {
try {
T2.x = 9;
} catch (Error e) {
System.out.println("捕获了Error");
}
}
static class T2 {
static int x;
}
}
分享到:
相关推荐
java.lang.NoClassDefFoundError: de/javakaffee/kryoserializers/CurrencySerializer
java解决Handler processing failed; nested exception is java.lang.NoClassDefFoundError
jdk升级之后出现异常:java.lang.NoClassDefFoundError: javax/xml/ws/Service 1、解决方案jdk降级至1.8之前 2、由于JDK9以后,去除了javax.xml包需要引入对应的jar包 <groupId>javax.activation <artifactId>...
JavaMail的java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream错误 原因: MyEclipse6.5的javaee.jar中的mail包与JavaMail包有冲突。 解决: 在MyEclipse目录下(D:\Program Files\MyEclipse ...
在jsp运行过程中,报错 java.lang.NoClassDefFoundError org.apache.xml.serializer.TreeWalker时的处理方法。
出现Exception in threadmain java.lang.NoClassDefFoundError的各种可能情况.doc
jdk升级jdk10后,原本jdk自带的 webservice一些包确实,引起的一系列错误解决方案
java.lang.NoClassDefFoundError: com/sun/activation/registries/LogSupport异常处理
NULL 博文链接:https://lyndon-lin.iteye.com/blog/856002
该jar包解决报错java.lang.NoClassDefFoundError: org/apache/james/mime4j/MimeException,亲测可用。
NULL 博文链接:https://bijian1013.iteye.com/blog/2305804
jackson-annotations-2.10.2.jar jackson-core-2.10.2.jar jackson-databind-2.10.2.jar NoClassDefFoundError解决
解决java.lang.NoClassDefFoundError这个问题,直接导入这几个包就解决了
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/Message at com.bulktree.mail.SimpleMailTest.mail(SimpleMailTest.java:30) at com.bulktree.mail.SimpleMailTest.main(SimpleMailTest...
NULL 博文链接:https://chen106106.iteye.com/blog/1596135
NULL 博文链接:https://jaychang.iteye.com/blog/980159
druid出现 java.lang.NoClassDefFoundError: org/apache/log4j <!-- <groupId>log4j <artifactId>log4j <version>1.2.17 </dependency>--> <groupId>org.slf4j <artifactId>log4j-over-slf4j ...
java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 要在java里使用json用到的jar包怎么导入...
整个系统都没有错误,但是在发布运行后,控制台上却抛出了这样的异常: java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource