1

理想的には次の 3 つの方法で実行したい Java コードがあります。

  1. assert失敗したときに例外をスローする
  2. スタック トレースを出力しますが、assert失敗した場合は続行します。
  3. 無視するassert

これは、3 つの異なる環境 (それぞれ開発、テスト、運用) で実行されます。-eaJVMオプションを使用して最初と最後を切り替えることができますが、2番目を行うことは可能ですか?

ありがとう。

編集: すでに assert ステートメントがどこにでもあります。コードを変更せずに、実行時にこのオプションを変更することをお勧めします。

4

3 に答える 3

4

Java のビルトインの代わりに単体テストを使用したいようですassertJUnitがあなたとあなたのチームのためにできることを調べてください。

実行するテストを設定すると、失敗が通知されます。スタック トレースが必要な場合は、例外を発生/キャッチして独自に作成し、e.printStackTrace().

于 2012-08-29T00:45:14.260 に答える
0

assertをスローするので、非常に簡単に#2を達成できますAssertionError

try {
  assert false;
} catch (final AssertionError error) {
  error.printStackTrace();
}
System.out.println("survived!");
于 2012-08-29T01:07:05.647 に答える
0

を使用しないとできませんAssertAssert失敗して無視されないように特別に設計されています。

于 2012-08-29T00:42:44.533 に答える