CheckAbort
CheckAbort[expr,failexpr]
expr を評価し,中断された場合には,failexpr を返す.
詳細とオプション
- デフォルトで,CheckAbortはユーザが開始した任意の中断(Abort[]への呼出しを含む)を中断し,それ以上伝播しない.
- CheckAbortが中断するかどうかはPropagateAbortsオプションで変えられる.このオプションには以下の設定が使える.
-
Automatic ユーザが開始した中断以外の中断を伝播する(Abort[]への呼出しを含む) True すべての中断を伝播する False 中断は伝播しない - CheckAbortのAbortProtect内で動作する. »
- CheckAbortは,属性HoldAllを有する.
例題
すべて開くすべて閉じるスコープ (3)
AbortProtectの中でCheckAbortを使って中断を検出する:
PropagateAbortsを使って中断を継続するかCheckAbortの後で終了するかを制御する:
TimeConstrainedの中でCheckAbortを使って制限に達した際にどの部分を飛ばすかを選択する:
これはMemoryConstrainedを使っても行える:
オプション (2)
PropagateAborts (2)
デフォルト設定のAutomaticはユーザが開始した中断をCheckAbortの外には伝播しない:
PropagateAbortsTrueという設定を使って中断がCheckAbortの外まで続くようにする:
デフォルトで,TimeConstrainedによって作成された中断は伝播される:
PropagateAbortsFalseの設定を使って中断が続かないようにする:
MemoryConstrainedによって作成された中断も同様である:
特性と関係 (5)
引数は事実上AbortProtectで包み込まれている:
CheckAbortはたとえAbortProtectで包み込まれていても中断を有効にし,検出する:
CheckAbort内の計算は終了されるがAbortProtectは完了まで続く:
ネストしたAbortProtectは中断を遅延するがCheckAbortによる中断の検出は妨害しない:
CheckAbortが開始されたときにすでに中断がアクティブなら,第1引数は評価されない:
計算が中断された場合はCheckAbortを使ってクリーンアップすることができる:
中断を生成する入力に対しても$myFlagはFalseに設定される:
WithCleanupは,はるかに短いコードで同じ目標を達成する:
テキスト
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