Java 2 SDK 開発ガイド (Solaris 編)

セマンティクス

あるクラスでアサーションが無効である場合、そのクラスに含まれる assert 文は何にも影響しません。アサーションが有効である場合、最初の式が評価されます。この式が false であると評価された場合、AssertionError がスローされます。さらに、(最初の式の後にコロンをはさんで) 2 番目の式が存在する場合、この式も評価されて、AssertionError のコンストラクタに渡されます。そうでない場合、パラメータのないコンストラクタが使用されます。最初の式が true であると評価された場合、2 番目の式は評価されません。

どちらかの式の評価中に例外がスローされた場合、assert 文は途中で終了して、当該の例外をスローします。