Java断言错误不会引发错误

时间:2013-07-29 17:22:11

标签: java eclipse assert

为什么我的断言声明没有产生任何结果? 我认为第一个断言语句应该失败,但我没有看到Eclipse上显示任何内容。

我正在使用Eclipse来运行此程序。

package java.first;

public class test {
  public static void main(String[] args) throws Exception {
    String s = "test1";
    assert (s == "test");
    s = "test";
    assert (s == "test");
  }
} 

5 个答案:

答案 0 :(得分:22)

您需要在JVM选项中设置-ea(启用断言)。


不相关,但您几乎总是想要string1.equals(string2)而不是==

答案 1 :(得分:8)

您必须使用-ea参数启用断言(-enableassertions的缩写)。

在Eclipse中:

  • 右键单击项目,然后“运行方式”“运行配置...”
  • 选择“参数”标签
  • -ea放入“VM参数”字段。
  • 选择“应用”

现在,正在运行应该会导致AssertionError

答案 2 :(得分:4)

默认情况下,Java会禁用断言。必须启用它们才能使其正常工作with the -ea option when running your program.

答案 3 :(得分:4)

您需要在运行时打开断言检查。 Java的Oracle文档声明:

  

要以各种粒度启用断言,请使用   -enableassertions,或-ea,switch。要禁用各种粒度的断言,请使用-disableassertions或-da,switch。

Oracle网站http://docs.oracle.com/javase/1.4.2/docs/guide/lang/assert.html#enable-disable

的详细信息

要更改在Eclipse中运行的程序的运行时选项,您需要修改Eclipse运行程序的参数。如何执行此操作将取决于您的Eclipse版本,但这是它在Eclipse Europa中的工作方式......

  • 打开“运行”对话框(这应该是“运行”菜单下的选项)。
  • 单击选项卡“(x)= Arguments。”
  • 在“VM参数”字段中,输入-ea以启用断言。
  • 点击“应用”按钮。

http://www.coderanch.com/t/416987/vc/enable-Assertions-eclipse

回答“借来的”

答案 4 :(得分:1)

您必须使用-ea参数启用它。