PropagateAborts
CheckAbortのオプションで,処理されている中断が包み込んでいる関数に伝播するかどうかを制御する.
詳細
- CheckAbort[expr,failexpr]は,expr の評価が中断された場合に failexpr を評価する.PropagateAbortsは中断信号が failexpr の評価を超えて継続するかどうか,包み込んでいる関数に伝播されるか消去されるかを制御する.
- PropagateAbortsには以下の設定が使える.
-
Automatic ユーザが開始した中断(Abort[]の呼出しを含む)以外を伝播する True すべての中断を伝播する False 中断は伝播しない
例題
すべて開く すべて閉じる例 (2)
CheckAbort[Abort[], "check"]この場合の動作はPropagateAbortsFalseと同じである:
CheckAbort[Abort[], "check", PropagateAborts -> False]PropagateAbortsTrueとすると,CheckAbortが返された後でも中断はアクティブになる:
CheckAbort[Abort[], "check", PropagateAborts -> True]デフォルトで,時間の制約に達したために生成された中断は外側に伝播される:
TimeConstrained[CheckAbort[Pause[10], "check"], 2, "constraint"]この場合の動作はPropagateAbortsTrueと同じである:
TimeConstrained[CheckAbort[Pause[10], "check", PropagateAborts -> True], 2, "constraint"]PropagateAbortsFalseとすると,TimeConstrainedの第2引数には決して達しない:
TimeConstrained[CheckAbort[Pause[10], "check", PropagateAborts -> False], 2, "constraint"]スコープ (2)
デフォルトで,メモリ制約に達したために生成された中断は外側に伝播される:
MemoryConstrained[CheckAbort[Range[10^6], "check"], 10^4, "constraint"]この場合の動作はPropagateAbortsTrueと同じである:
MemoryConstrained[CheckAbort[Range[10^6], "check", PropagateAborts -> True], 10^4, "constraint"]PropagateAbortsFalseとすると,MemoryConstrainedの第2引数には決して達しない:
MemoryConstrained[CheckAbort[Range[10^6], "check", PropagateAborts -> False], 10^4, "constraint"]PropagateAbortsFalseを使ってループ中の後の計算が試行されるようにする:
MemoryConstrained[Do[CheckAbort[Expand[(x + i) ^ 100];
Print["completed i==", i], Print["abort in i==", i], PropagateAborts -> False], {i, 0, 5}];
"loop finished", 2 10 ^ 4, "loop broken"]デフォルト設定では,計算が中断されると同時にループは停止する:
MemoryConstrained[Do[CheckAbort[Expand[(x + i) ^ 100];
Print["completed i==", i], Print["abort in i==", i]], {i, 0, 5}];
"loop finished", 2 10 ^ 4, "loop broken"]関連するガイド
-
▪
- フロー制御 ▪
- ロバスト性とエラー処理 ▪
- パッケージの保護
テキスト
Wolfram Research (2022), PropagateAborts, Wolfram言語関数, https://reference.wolfram.com/language/ref/PropagateAborts.html.
CMS
Wolfram Language. 2022. "PropagateAborts." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/PropagateAborts.html.
APA
Wolfram Language. (2022). PropagateAborts. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/PropagateAborts.html
BibTeX
@misc{reference.wolfram_2026_propagateaborts, author="Wolfram Research", title="{PropagateAborts}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/PropagateAborts.html}", note=[Accessed: 13-July-2026]}
BibLaTeX
@online{reference.wolfram_2026_propagateaborts, organization={Wolfram Research}, title={PropagateAborts}, year={2022}, url={https://reference.wolfram.com/language/ref/PropagateAborts.html}, note=[Accessed: 13-July-2026]}