Enclose

Enclose[expr]

expr を評価して結果を返そうとするが,エラーをキャッチした場合は評価を中止して失敗オブジェクトを返す.

Enclose[expr,f]

生成された任意の失敗オブジェクトに f を適用する.

Enclose[expr,"prop"]

生成された任意の失敗オブジェクトの特性 prop を与える.

Enclose[expr,handler,form]

明示的に指定された,form と一致するタグでスローされたエラーだけをキャッチする.

詳細

  • Enclose[expr,]は,評価中にエラーがキャッチされなかったときは expr の値を返す.
  • Encloseは,内側のEncloseですでにキャッチされているエラーはキャッチしない.
  • Encloseのスコープは,タグが与えられていない場合は語彙的になり,タグが与えられている場合は動的になる.Enclose[expr]は,したがって,式 expr に語彙的に現れるConfirm等のインスタンスだけを処理する.expr の処理中に遭遇したConfirm等のインスタンスは処理しない.
  • tag は,パターンを含む任意の式でよい.
  • Encloseは,ConfirmConfirmByConfirmMatchConfirmQuietConfirmAssertがスローしたエラーをキャッチする.
  • Encloseは,事実上特殊なタグでCatchを使う.
  • Enclose[expr,f,]の中の f のデフォルト値はIdentityである.
  • Enclose[expr,"prop"]でリクエストできる特性は,スローされたエラーによって異なる. »

例題

すべて開くすべて閉じる

  (2)

式を評価し,エラーがスローされ次第評価を中止する:

ロバストな関数を作成する:

スコープ  (6)

返す前にエラーを処理する:

f"Expression"に設定して,エラーをFailureで包み込まずに伝播する:

最も内側のEncloseが最優先される:

タグを使ってエラーを外側のEncloseに渡す:

エラーが発生した場合に固定値を返すために,f に定数関数を与える:

エラーを複数レベルに伝播する:

確認をネストさせて複数回確認する:

アプリケーション  (3)

失敗する可能性のある関数を安全に呼び出し,エラーを変更せずに伝播する:

すべての国の一人あたりGDPを計算し,不足値を伝播する:

BoundaryMeshRegionが使用できない多面体を無視して,頂点のすべてのペアの間に辺があるすべての多面体を検索する:

考えられる問題  (3)

Catch[,_]はエラーが傍受できる:

EncloseThrowがスローした式はキャッチしない:

タグが与えられないと,EncloseConfirmのようなシンボルをタグ付きの異形で語彙的に置換する:

Wolfram Research (2020), Enclose, Wolfram言語関数, https://reference.wolfram.com/language/ref/Enclose.html.

テキスト

Wolfram Research (2020), Enclose, Wolfram言語関数, https://reference.wolfram.com/language/ref/Enclose.html.

CMS

Wolfram Language. 2020. "Enclose." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/Enclose.html.

APA

Wolfram Language. (2020). Enclose. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Enclose.html

BibTeX

@misc{reference.wolfram_2024_enclose, author="Wolfram Research", title="{Enclose}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/Enclose.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_enclose, organization={Wolfram Research}, title={Enclose}, year={2020}, url={https://reference.wolfram.com/language/ref/Enclose.html}, note=[Accessed: 22-November-2024 ]}