エラーを起こし、そのリープをキャッチできる一番近い地点に戻る。
throw/1 は、現在実行手続きの実行をやめ、
そのリープをキャッチできる一番近い地点に戻る。
そのキャッチ点は、 'catch(ゴール, キャッチマスク, 回復ゴール)'によってつくられる。
もし、キャッチマスク が項 と単一化可能であれば、
catch/3 の結果は、回復ゴールの結果となる。
もし、キャッチ点が見つからなければ、throw/1 は MINERVAを終了する。
項 項
| catch(throw(true),X,write('return to catch-point')). | X <- true の代入で成功し、
'return to catch-point' を現在出力ストリームに書く。 |
この述語は、ISO-Prolog 標準に含まれる。