2011-04-14 27 views

回答

4

静态初始化程序不能抛出检查异常,因为类的初始化可能发生在代码中的有效任意位置,此时不会期望检查的异常。

静态初始化程序可以抛出未经检查的异常,这将阻止该类正确初始化并阻止该类被使用。但是,这样做会导致难以调试的问题。

这个规则是在§8.7 Static Initializers of the JLS

这是一个编译时错误的静态初始化,以能够与检查异常(§11.2)突然完成(§14.1§15.6)。