0

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

所以..我从那个银行客户示例中写了一个快速课程..其中一种方法是提款。

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

所以我的意图是如果提款金额大于余额......然后抛出一个错误......(我认为应该更像是一个例外......但可以说我想通过断言来检查这个) ...

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

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

我究竟做错了什么

4

2 回答 2

6

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

[编辑]

您可以在此处找到带有断言的 Java 编程指南。请注意有关启用和禁用断言的位。

于 2012-12-25T00:20:59.710 回答
5

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

java -ea SomeClass
于 2012-12-25T00:22:27.567 回答