如何检测 JVM 中是否打开了断言?

发布于 2024-11-29 22:22:35 字数 92 浏览 0 评论 0原文

我希望 Java 程序输出的第一行打印断言是否打开。我该怎么做?

编辑:另一个要求是程序在执行有用的工作之前不应终止。

I want the first line of my Java program output to print whether assertions are turned on. How do I do this?

Edit: An additional requirement is that the program should not terminate before doing useful work.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

苦妄 2024-12-06 22:22:35
try {
  assert false;
  System.out.println("Assertions disabled.");
}
catch(AssertionError ae) {
  System.out.println("Assertions enabled.");
}  
try {
  assert false;
  System.out.println("Assertions disabled.");
}
catch(AssertionError ae) {
  System.out.println("Assertions enabled.");
}  
离鸿 2024-12-06 22:22:35

这个怎么样?我不懂Java,但我认为这可能有用:

try {
    assert false;
    System.out.println("assertions are disabled");
} catch (AssertionError e) {
    System.out.println("assertions are enabled");
}

How about this? I don't know Java, but I think this may work:

try {
    assert false;
    System.out.println("assertions are disabled");
} catch (AssertionError e) {
    System.out.println("assertions are enabled");
}
幻想少年梦 2024-12-06 22:22:35

性能更好的解决方案(不会引发异常)是:

boolean assertionsEnabled = false;
assert (assertionsEnabled = true);

A better performing solution (that does not throw exceptions) is:

boolean assertionsEnabled = false;
assert (assertionsEnabled = true);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文