java - 在 Java 中,如果我的程序在没有 -ea 的情况下运行,我怎么会失败?

标签 java assertions

有没有办法检查程序是否以 -ea 启动,如果不是,我可以退出/失败?如果断言失败,我想得到通知。因此,我认为没有这个就启动是一个严重的错误。

最佳答案

做出保证会失败的断言。

如果该断言之后的代码运行,则断言未启用。

boolean asserted = false;

try {
   assert false;
} catch (AssertionError e) {
   asserted = true;
}

if (!asserted) {
    System.err.println("Missing '-ea' flag; exiting.");
    System.exit(1);
    // ... or throw a RuntimeException, depending on your environment.
}

也就是说,我并不是 100% 相信强制断言是个好主意。 IMO 断言更多的是用于开发而不是正常的错误检查/处理。

关于java - 在 Java 中,如果我的程序在没有 -ea 的情况下运行,我怎么会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14445312/

相关文章:

java - 我需要使用 Spring Security OAuth2 的资源服务器吗?

java - Thymeleaf - 从对象列表填充下拉菜单

Java - 如何解决这个二维数组沙漏?

ruby - ruby minitest 中可能出现 `assert_equal ... or assert_equal ...` 吗?

python - 如何使用 Python unittest assertRaises 来测试该函数不会抛出任何异常?

java - 对 java ConcurrentHashMap 中的值进行排序

java - 如何修复输入不匹配异常

c++ - 性能断言

assertions - 使用断言的适当性

java - 不同线程中的 Hibernate AssertionFailure