Throw
例題
すべて開く すべて閉じる例 (3)
Throwが評価されると直ちに囲み込んでいるCatchに退避する:
Catch[a;b;Throw[c];d;e]f[x_] := If[x > 10, Throw[overflow], x!]Catchの結果はThrowが投げ出した(実行した)ものである:
Catch[f[2] + f[11]]Catch[f[2] + f[3]]Throwを使って基準を満たしたときにループから退避する:
Catch[Do[If[i! > 10 ^ 10, Throw[i]], {i, 100}]]スコープ (4)
Throwは基本的にどのような関数の内側でも使うことができる:
Catch[If[# < 0, Throw[#]]& /@ {1, 2, 0, -1, 5, 6}]Catch[{a, Throw[b], c}]Catch[a ^ 2 + b ^ 2 + c ^ 2 /. b :> Throw[bbb]]Throwを使って任意の形の式を投げる:
Catch[If[NumericQ[#], Throw[#]]& //@ Integrate[1 / (x ^ 5 - 1), x]]Throwは最も近くにあってこれを囲み込んでいるCatchによってキャッチされる:
Catch[{Catch[{a, Throw[b], c}], d, e}]最初のThrowが評価され次第,これを囲み込んでいるCatchに退避する:
Catch[{Throw[a], Throw[b], Throw[c]}]Catch[Throw /@ {a, b, c}]一般化と拡張 (3)
アプリケーション (3)
Catch[Do[If[PrimeQ[i], Throw[i]], {i, 10 ^ 10, 10 ^ 10 + 1000}]]Catch[Do[If[Mod[17 ^ i, 19] == 1, Throw[i]], {i, 19}]]NestList[# ^ 2 + 1&, 2, 6]Catch[NestList[If[# > 1000, Throw[#], # ^ 2 + 1]&, 2, 6]]特性と関係 (1)
メッセージが生成された場合はCheckを使って例外を投げる(実行する):
Catch[2 + Check[1 / (1 + 1 / 0), Throw[error]]]Catch[2 + Check[1 / (1 + 1 / 2), Throw[error]]]関連するガイド
-
▪
- フロー制御 ▪
- ループ構文 ▪
- スコープ構文 ▪
- 手続き型プログラミング ▪
- 言語の概要 ▪
- ロバスト性とエラー処理
履歴
1988 で導入 (1.0) | 1996 で更新 (3.0) ▪ 2020 (12.2)
テキスト
Wolfram Research (1988), Throw, Wolfram言語関数, https://reference.wolfram.com/language/ref/Throw.html (2020年に更新).
CMS
Wolfram Language. 1988. "Throw." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/Throw.html.
APA
Wolfram Language. (1988). Throw. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Throw.html
BibTeX
@misc{reference.wolfram_2026_throw, author="Wolfram Research", title="{Throw}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/Throw.html}", note=[Accessed: 02-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_throw, organization={Wolfram Research}, title={Throw}, year={2020}, url={https://reference.wolfram.com/language/ref/Throw.html}, note=[Accessed: 02-November-2026]}