CheckAbort

CheckAbort[expr,failexpr]

expr を評価し,中断された場合には,failexpr を返す.

詳細とオプション

  • デフォルトで,CheckAbortはユーザが開始した任意の中断(Abort[]への呼出しを含む)を中断し,それ以上伝播しない.
  • CheckAbortが中断するかどうかはPropagateAbortsオプションで変えられる.このオプションには以下の設定が使える.
  • Automaticユーザが開始した中断以外の中断を伝播する(Abort[]への呼出しを含む)
    Trueすべての中断を伝播する
    False中断は伝播しない
  • CheckAbortAbortProtect内で動作する. »
  • CheckAbortは,属性HoldAllを有する.

例題

すべて開くすべて閉じる

  (1)

計算の部分的な中断をキャッチし,残りの計算を続行する:

スコープ  (3)

AbortProtectの中でCheckAbortを使って中断を検出する:

戻り値は中断を生成した関数に依存することがある:

PropagateAbortsを使って中断を継続するかCheckAbortの後で終了するかを制御する:

TimeConstrainedの中でCheckAbortを使って制限に達した際にどの部分を飛ばすかを選択する:

これはMemoryConstrainedを使っても行える:

オプション  (2)

PropagateAborts  (2)

デフォルト設定のAutomaticはユーザが開始した中断をCheckAbortの外には伝播しない:

PropagateAbortsTrueという設定を使って中断がCheckAbortの外まで続くようにする:

デフォルトで,TimeConstrainedによって作成された中断は伝播される:

PropagateAbortsFalseの設定を使って中断が続かないようにする:

MemoryConstrainedによって作成された中断も同様である:

特性と関係  (5)

第2引数の評価は一旦始まると中断できない:

引数は事実上AbortProtectで包み込まれている:

CheckAbortはたとえAbortProtectで包み込まれていても中断を有効にし,検出する:

CheckAbort内の計算は終了されるがAbortProtectは完了まで続く:

ネストしたAbortProtectは中断を遅延するがCheckAbortによる中断の検出は妨害しない:

CheckAbortが開始されたときにすでに中断がアクティブなら,第1引数は評価されない:

計算が中断された場合はCheckAbortを使ってクリーンアップすることができる:

中断を生成する入力に対しても$myFlagFalseに設定される:

WithCleanupは,はるかに短いコードで同じ目標を達成する:

Wolfram Research (1991), CheckAbort, Wolfram言語関数, https://reference.wolfram.com/language/ref/CheckAbort.html (2022年に更新).

テキスト

Wolfram Research (1991), CheckAbort, Wolfram言語関数, https://reference.wolfram.com/language/ref/CheckAbort.html (2022年に更新).

CMS

Wolfram Language. 1991. "CheckAbort." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2022. https://reference.wolfram.com/language/ref/CheckAbort.html.

APA

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

BibTeX

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

BibLaTeX

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