0

私はJavaを初めて使用するので、キーワードが正しく取得されないのはそのためかもしれません。

だから..私はその銀行の顧客の例から簡単なクラスを書きました..そして方法の1つは撤回です。

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

だから私が意図していたのは、引き出し額が残高よりも大きい場合です..次にエラーをスローします...(これは例外のように見えるはずです....しかし、これをアサーションで確認したいとしましょう) ..。。

しかし、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 に答える