我有一个静态初始化块,并从中引发ExceptionInInitializerError
异常。
有没有办法通过这个异常并访问这个类的其他字段和方法?谢谢你。
问问题
101 次
2 回答
2
ExceptionInInitializerError背后的主要原因是,当JVM遇到无法处理的意外情况时,JVM会抛出上述错误。ExceptionInInitializerError
可以被捕获,虽然你不应该捕获Error,但实际上不可能从中恢复,因为发生异常的类无法进一步使用(例如实例化该类),产生一个NoClassDefFoundError.
你可以参考JLS - 详细的初始化程序。
于 2013-04-29T07:07:20.270 回答
0
将启动包含静态块的类的调用放入 try 块和 catchExceptionInInitializerError
中。如下所示:
try{
ClassWithStaticBlock cb = new ClassWithStaticBlock();
}
catch(ExceptionInInitializerError ex){
}
于 2013-04-29T07:19:15.677 回答