断言不按我在java中的思路工作

时间:2012-12-25 00:19:23

标签: java

我是java新手..所以也许这就是为什么我没有得到关键字的权利?

所以..我从该银行客户示例中写了一个快速课程......其中一个方法是退出。

public void withdraw(double d){
        double diff = balance - d;
        assert (diff>=0 ) :" Insufficient funds!";
        balance = diff;
    }

所以我想要的是如果取款余额大于余额..然后抛出一个错误......(我认为应该更像是一个例外......但是让我说我​​想检查一下断言)......

但它没有做任何事情......即使差异小于零..

代码编译得很好..而我期望它会抛出一个错误。

我做错了什么

2 个答案:

答案 0 :(得分:5)

默认情况下禁用断言。您可以通过在调用JVM时传递-enableassertions标志来启用所有断言。

[编辑]

您可以找到Java Programming with Assertions指南here。请注意启用和禁用断言的位。

答案 1 :(得分:5)

默认情况下不启用断言,您需要在运行Java应用程序时明确启用它们,例如

java -ea SomeClass