在调试器中逐步执行java.util.logging.LogManager
代码时,我发现了这一点
由于第1301行的例外
try (final InputStream in = new FileInputStream(fname)) {
第407行抓住
assert false : "Exception raised while reading logging configuration: " + ex;
应该但不要抛出AssertionError
。
VM选项:-ea -Djava.util.logging.config.file=logging.properties
。
答案 0 :(得分:0)
您必须使用-esa
enable assertions in all system classes。根据{{1}}的文档:
-enableassertions(-ea)选项适用于所有类加载器和系统类(没有类加载器)。 此规则有一个例外:如果该选项不带参数,则它不适用于系统类。这使得在除系统类之外的所有类中启用断言变得容易。 -enablesystemassertions选项提供了一个单独的开关,用于在所有系统类中启用断言。
以下是一个测试用例,用于验证您应该使用-ea[:[packagename]...|:classname]
运行的行为:
-esa
另一种选择是通过将命令行设置为:public static void main(String[] args) {
System.out.println(LogManager.class.desiredAssertionStatus());
}