引起 java.lang.ExceptionInInitializerError 错误的原因是:在类的初始化时,出错。也就是说,在加载类时,执行static的属性、方法块时,出错了。
比如
public class AA {
private static AA aa = new AA();
private AA(){//构造方法
init();
}
public void init(){
.... }
}
初始化类时,会调用init方法,如果Init方法出错,这类初始化失败,就会报java.lang.ExceptionInInitializerError错误
同理,在执行
static{
...
}
方法块时,也可能报这个错。
解决方案,1、分析报错原因并改正程序;2、如果允许报错,可以添加try-catch捕获异常。