ConfirmAssert[test]
ConfirmAssert[test,info]
test がTrueではない場合は,info を評価してその値をスローするエラーに入れる.
ConfirmAssert[test,info,tag]
スローされる任意のエラーに指定されたタグを使う.
ConfirmAssert
ConfirmAssert[test]
ConfirmAssert[test,info]
test がTrueではない場合は,info を評価してその値をスローするエラーに入れる.
ConfirmAssert[test,info,tag]
スローされる任意のエラーに指定されたタグを使う.
詳細
- ConfirmAssert[…]は,常にNullを返す.
- ConfirmAssertのスコープは,タグが与えられた場合は動的である.それ以外の場合は語彙的である. »
- info のデフォルト値はNullである.
- ConfirmAssertによって生成されたFailureオブジェクトには,以下のフィールドが含まれる.
-
"Information" ConfirmAssert[test,info,…]からの info "Test" ConfirmAssert[test,…]からの expr - これらのフィールドの値は failure["prop"]を使ってまたはEnclose[expr,"prop"]で直接取り出すことができる.
例題
すべて開く すべて閉じる例 (2)
Enclose[ConfirmAssert[2 > 1];2]アサーションが失敗した場合は,評価を中止して囲んでいるEncloseにエラーをスローする:
Enclose[ConfirmAssert[2 > 3];2]f[x_] := Enclose[ConfirmAssert[Sqrt[x] > 2];Sin[x]]f[5.3]f[3.4]スコープ (3)
ConfirmAssertは,エラーをスローした場合は評価を中止して一致するEncloseに戻る:
Enclose[Echo[1];ConfirmAssert[1 == 0];Echo[2]]info は,expr が確認できないときしか評価されない:
Enclose[ConfirmAssert[1 < 5, Echo["info was evaluated"]]]Enclose[ConfirmAssert[12 < 5, Echo["info was evaluated"]]]動的にキャッチできるようにタグでConfirmAssertを呼び出す関数を作成する:
f[x_] := g[ConfirmAssert[StringQ[x], Null, "fooTag"];StringReverse[x]]h[y_] := Enclose[f[y], Identity, "fooTag"]h["reverseme"]h[42]タグがないとConfirmAssertのスコープは語彙的になる:
f2[x_] := g[ConfirmAssert[StringQ[x]];StringReverse[x]]h2[y_] := Enclose[f2[y]]h2[2]アプリケーション (1)
reverseRoman::nan = "`` is not an integer.";reverseRoman[n_] :=
Enclose[
ConfirmAssert[IntegerQ[n], Message[reverseRoman::nan, n]];
StringReverse[RomanNumeral[n]],
$Failed&]reverseRoman[21]reverseRoman["veni, vidi, vici"]特性と関係 (2)
ConfirmAssertはConfirmByとConfirmMatchでエミュレートできる:
Enclose[ConfirmAssert[False];"hello"]Enclose[ConfirmBy[False, TrueQ];"hello"]Enclose[ConfirmMatch[False, True];"hello"]ConfirmAssert[f[expr]]は,事実上,expr ではなくNullを返す点を除いて,ConfirmBy[expr,f]と等しい:
Enclose[f[ConfirmAssert[StringQ["hello"]]]]Enclose[f[ConfirmBy["hello", StringQ]]]考えられる問題 (3)
ConfirmAssertには,タグを与えるか語彙的Encloseの中に置くかしなければならない:
ConfirmAssert[2 < 4]タグなしのConfirmAssertは,シンボルConfirmAssertのタグ付きの異形のインスタンスで置換されることで動作する:
Enclose[Hold[ConfirmAssert]]タグ付きのConfirmAssertには,一致するタグを持つEncloseが必要である:
Enclose[ConfirmAssert[1 < 0, Null, "foo"], Identity, "bar"]関連するガイド
-
▪
- ロバスト性とエラー処理 ▪
- パッケージの保護 ▪
- フロー制御
テキスト
Wolfram Research (2020), ConfirmAssert, Wolfram言語関数, https://reference.wolfram.com/language/ref/ConfirmAssert.html.
CMS
Wolfram Language. 2020. "ConfirmAssert." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ConfirmAssert.html.
APA
Wolfram Language. (2020). ConfirmAssert. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ConfirmAssert.html
BibTeX
@misc{reference.wolfram_2026_confirmassert, author="Wolfram Research", title="{ConfirmAssert}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/ConfirmAssert.html}", note=[Accessed: 10-July-2026]}
BibLaTeX
@online{reference.wolfram_2026_confirmassert, organization={Wolfram Research}, title={ConfirmAssert}, year={2020}, url={https://reference.wolfram.com/language/ref/ConfirmAssert.html}, note=[Accessed: 10-July-2026]}