我在此页面上进行了一些测试:http://scjptest.com/mock-test.xhtml?execution=e7s1,并且有一个问题“执行该程序会得到什么结果?”。这是代码:
public class SuperHotel {
static int x[];
static {
x[0] = 1;
}
public static void main(String args[]) {
}
}
答案是“抛出了ExceptionInInitializerError”。有人可以说“ ExceptionInInitializerError”何时发生以及为什么在此代码中发生?
最佳答案
抛出ExceptionInInitializerError
表示在评估静态初始化程序或静态变量的初始化程序期间发生了异常。
在您的代码中,您尚未初始化数组x[]
,并且您在静态块中使用了x[0]=1
,因此发生了异常。