[解決済み] assert」キーワードは何をするのですか?重複
2022-06-09 09:10:58
質問
はどのようなものですか?
assert
は何をするのでしょうか?
例えば関数の中で
private static int charAt(String s, int d) {
assert d >= 0 && d <= s.length();
if (d == s.length()) return -1;
return s.charAt(d);
}
どのように解決するのですか?
プログラムを起動する際に
-enableassertions
(または
-ea
略)すると、この文は
assert cond;
は
if (!cond)
throw new AssertionError();
このオプションを付けずにプログラムを起動した場合、assert文は何の効果も発揮しません。
例えば
assert d >= 0 && d <= s.length();
は、質問で投稿されたように、次のように等価です。
if (!(d >= 0 && d <= s.length()))
throw new AssertionError();
(で起動した場合
-enableassertions
ということです)。
形式的には
Java言語仕様です。14.10. は
assert
ステートメント
には次のように書かれています。
14.10. は
assert
ステートメント
アサーションはassert
ステートメントで、ブーリアン式を含んでいます。アサーションは 有効か無効かのどちらかです。 . アサーションが有効な場合、アサーションを実行するとブーリアン式が評価され エラーが報告されます。 と評価された場合false
. アサーションが無効になっている場合、アサーションの実行は何の効果もない。
ここで
"有効または無効"。
は
-ea
スイッチと
"エラーが報告されます"。
というのは
AssertionError
が投げられたことを意味します。
そして最後に、あまり知られていない機能である
assert
:
を追加することができます。
: "Error message"
のようにします。
assert d != null : "d is null";
で、投げられたAssertionErrorのエラーメッセージを指定します。
この投稿は記事として書き直されました ここで .
関連
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] JUnit 4のテストで、ある例外が投げられたことをどのように断言しますか?
-
[解決済み] JavaBeanとは何ですか?
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] Javaはパラメータのデフォルト値をサポートしていますか?
-
[解決済み] Pythonの "assert "はどのように使うのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
アクセス制限です。タイプ 'Application' は API ではありません。
-
Spring Boot による HTTPS アクセスの設定
-
をインスタンス化することができません。
-
JQuery DataTable 详解
-
VMの初期化中にエラーが発生しました java/lang/NoClassDefFoundError: java/lang/Object
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException: 1
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 4 at text.Division.main(Divisi
-
IDEA パッケージステートメントの欠落
-
Maven Pluginの実行がライフサイクル設定の対象外であるエラーの解決
-
[解決済み] Java の assert キーワードは何をするのか、そしていつ使うべきなのか?